diff options
author | Loïc Hoguin <[email protected]> | 2018-11-24 13:29:23 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2018-11-24 13:29:23 +0100 |
commit | 9dfa5dd6fa860040b2711f09aed38d3a1ff606be (patch) | |
tree | 52b69c7c6d4f4c6a5fd31ad300705b152e2a17d0 | |
parent | ea066afe76802fb888abc58c1a4ac3d367e2379c (diff) | |
download | erlang.mk-9dfa5dd6fa860040b2711f09aed38d3a1ff606be.tar.gz erlang.mk-9dfa5dd6fa860040b2711f09aed38d3a1ff606be.tar.bz2 erlang.mk-9dfa5dd6fa860040b2711f09aed38d3a1ff606be.zip |
Disallow uppercase characters in application names
-rw-r--r-- | plugins/bootstrap.mk | 12 | ||||
-rw-r--r-- | test/plugin_bootstrap.mk | 42 |
2 files changed, 46 insertions, 8 deletions
diff --git a/plugins/bootstrap.mk b/plugins/bootstrap.mk index cb459b2..84f168e 100644 --- a/plugins/bootstrap.mk +++ b/plugins/bootstrap.mk @@ -421,7 +421,8 @@ ifneq ($(wildcard src/),) $(error Error: src/ directory already exists) endif $(eval p := $(PROJECT)) - $(if $(findstring -,$p),$(error Error: The dash cannot be used in application names)) + $(if $(shell echo $p | grep -x "[a-z0-9_]*"),,\ + $(error Error: Invalid characters in the application name)) $(eval n := $(PROJECT)_sup) $(call render_template,bs_Makefile,Makefile) $(verbose) echo "include erlang.mk" >> Makefile @@ -437,7 +438,8 @@ ifneq ($(wildcard src/),) $(error Error: src/ directory already exists) endif $(eval p := $(PROJECT)) - $(if $(findstring -,$p),$(error Error: The dash cannot be used in application names)) + $(if $(shell echo $p | grep -x "[a-z0-9_]*"),,\ + $(error Error: Invalid characters in the application name)) $(call render_template,bs_Makefile,Makefile) $(verbose) echo "include erlang.mk" >> Makefile $(verbose) mkdir src/ @@ -466,7 +468,8 @@ ifneq ($(wildcard $(APPS_DIR)/$in),) $(error Error: Application $in already exists) endif $(eval p := $(in)) - $(if $(findstring -,$p),$(error Error: The dash cannot be used in application names)) + $(if $(shell echo $p | grep -x "[a-z0-9_]*"),,\ + $(error Error: Invalid characters in the application name)) $(eval n := $(in)_sup) $(verbose) mkdir -p $(APPS_DIR)/$p/src/ $(call render_template,bs_apps_Makefile,$(APPS_DIR)/$p/Makefile) @@ -484,7 +487,8 @@ ifneq ($(wildcard $(APPS_DIR)/$in),) $(error Error: Application $in already exists) endif $(eval p := $(in)) - $(if $(findstring -,$p),$(error Error: The dash cannot be used in application names)) + $(if $(shell echo $p | grep -x "[a-z0-9_]*"),,\ + $(error Error: Invalid characters in the application name)) $(verbose) mkdir -p $(APPS_DIR)/$p/src/ $(call render_template,bs_apps_Makefile,$(APPS_DIR)/$p/Makefile) ifdef LEGACY diff --git a/test/plugin_bootstrap.mk b/test/plugin_bootstrap.mk index c253dd6..8692609 100644 --- a/test/plugin_bootstrap.mk +++ b/test/plugin_bootstrap.mk @@ -37,21 +37,35 @@ endif {module, $(APP)_sup} = code:load_file($(APP)_sup), \ halt()" -bootstrap-invalid-app-name: build clean +bootstrap-invalid-app-name-dash: build clean $i "Try to bootstrap a new OTP application named test_$@" $t mkdir test_$@/ $t cp ../erlang.mk test_$@/ $t ! $(MAKE) -C test_$@ -f erlang.mk bootstrap $v -bootstrap-invalid-lib-name: build clean +bootstrap-invalid-app-name-uppercase: build clean + + $i "Try to bootstrap a new OTP application named $(APP)_HELLO" + $t mkdir $(APP)_HELLO/ + $t cp ../erlang.mk $(APP)_HELLO/ + $t ! $(MAKE) -C $(APP)_HELLO -f erlang.mk bootstrap $v + +bootstrap-invalid-lib-name-dash: build clean $i "Try to bootstrap a new OTP library named test_$@" $t mkdir test_$@/ $t cp ../erlang.mk test_$@/ $t ! $(MAKE) -C test_$@ -f erlang.mk bootstrap-lib $v -bootstrap-invalid-new-app-name: build clean +bootstrap-invalid-lib-name-uppercase: build clean + + $i "Try to bootstrap a new OTP library named $(APP)_HELLO" + $t mkdir $(APP)_HELLO/ + $t cp ../erlang.mk $(APP)_HELLO/ + $t ! $(MAKE) -C $(APP)_HELLO -f erlang.mk bootstrap-lib $v + +bootstrap-invalid-new-app-name-dash: build clean $i "Bootstrap a new OTP library named $(APP)" $t mkdir $(APP)/ @@ -61,7 +75,17 @@ bootstrap-invalid-new-app-name: build clean $i "Try to create a new application my-app" $t ! $(MAKE) -C $(APP) new-app in=my-app $v -bootstrap-invalid-new-lib-name: build clean +bootstrap-invalid-new-app-name-uppercase: build clean + + $i "Bootstrap a new OTP library named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v + + $i "Try to create a new application My_app" + $t ! $(MAKE) -C $(APP) new-app in=My_app $v + +bootstrap-invalid-new-lib-name-dash: build clean $i "Bootstrap a new OTP library named $(APP)" $t mkdir $(APP)/ @@ -71,6 +95,16 @@ bootstrap-invalid-new-lib-name: build clean $i "Try to create a new library my-lib" $t ! $(MAKE) -C $(APP) new-lib in=my-lib $v +bootstrap-invalid-new-lib-name-uppercase: build clean + + $i "Bootstrap a new OTP library named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v + + $i "Try to create a new library My_lib" + $t ! $(MAKE) -C $(APP) new-lib in=My_lib $v + bootstrap-lib: build clean $i "Bootstrap a new OTP library named $(APP)" |