Ron Yorston
2018-11-18 09:05:46 UTC
- Force a rebuild if a script in applets_sh is changed.
- Move the dummy usage messages for custom applets to usage.h and
change the name from 'dummy' to 'scripted'.
- Hide an error from gen_build_files.sh if an embed directory exists
but is empty.
- Strip leading comments and blank lines from embedded scripts before
compressing them. Removing all comments would be nice but is hard.
Signed-off-by: Ron Yorston <***@pobox.com>
---
Makefile | 2 +-
include/applets.src.h | 6 ------
include/usage.src.h | 3 +++
scripts/embedded_scripts | 12 ++++++++++--
scripts/gen_build_files.sh | 4 ++--
5 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
index 4b5a01df9..f0b4da234 100644
--- a/Makefile
+++ b/Makefile
@@ -853,7 +853,7 @@ quiet_cmd_split_autoconf = SPLIT include/autoconf.h -> include/config/*
quiet_cmd_gen_embedded_scripts = GEN include/embedded_scripts.h
cmd_gen_embedded_scripts = $(srctree)/scripts/embedded_scripts include/embedded_scripts.h $(srctree)/embed $(srctree)/applets_sh
#bbox# piggybacked generation of few .h files
-include/config/MARKER: scripts/basic/split-include include/autoconf.h $(wildcard $(srctree)/embed/*) $(srctree)/scripts/embedded_scripts
+include/config/MARKER: scripts/basic/split-include include/autoconf.h $(wildcard $(srctree)/embed/*) $(wildcard $(srctree)/applets_sh/*) $(srctree)/scripts/embedded_scripts
$(call cmd,split_autoconf)
$(call cmd,gen_bbconfigopts)
$(call cmd,gen_common_bufsiz)
diff --git a/include/applets.src.h b/include/applets.src.h
index a9db5d160..60968cec7 100644
--- a/include/applets.src.h
+++ b/include/applets.src.h
@@ -22,12 +22,6 @@ s - suid type:
BB_SUID_REQUIRE or BB_SUID_MAYBE applet.
*/
-#define NOUSAGE_STR "\b"
-
-#define dummy_trivial_usage NOUSAGE_STR \
-
-#define dummy_full_usage "" \
-
#if defined(PROTOTYPES)
# define APPLET(name,l,s) int name##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
# define APPLET_ODDNAME(name,main,l,s,help) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
diff --git a/include/usage.src.h b/include/usage.src.h
index 00369dfb3..d22efd3ba 100644
--- a/include/usage.src.h
+++ b/include/usage.src.h
@@ -14,6 +14,9 @@
#define NOUSAGE_STR "\b"
+#define scripted_trivial_usage NOUSAGE_STR
+#define scripted_full_usage ""
+
#if !ENABLE_USE_BB_CRYPT || ENABLE_USE_BB_CRYPT_SHA
# define CRYPT_METHODS_HELP_STR "des,md5,sha256/512" \
" (default "CONFIG_FEATURE_DEFAULT_PASSWD_ALGO")"
diff --git a/scripts/embedded_scripts b/scripts/embedded_scripts
index c2e7c6961..b419bcb1f 100755
--- a/scripts/embedded_scripts
+++ b/scripts/embedded_scripts
@@ -63,15 +63,23 @@ then
exit 1
fi
+# remove leading comments and blank lines
+strip_header() {
+ awk '
+ /^#/ { if (!found) next; }
+ /^$/ { if (!found) next; }
+ { found=1; print; }' $1
+}
+
concatenate_scripts() {
for i in $custom_scripts
do
- cat $custom_loc/$i
+ strip_header $custom_loc/$i
printf '\000'
done
for i in $applet_scripts
do
- cat $applet_loc/$i
+ strip_header $applet_loc/$i
printf '\000'
done
}
diff --git a/scripts/gen_build_files.sh b/scripts/gen_build_files.sh
index 64e4bffa9..362632df3 100755
--- a/scripts/gen_build_files.sh
+++ b/scripts/gen_build_files.sh
@@ -23,9 +23,9 @@ custom_scripts()
custom_loc="$1"
if [ -d "$custom_loc" ]
then
- for i in $(cd "$custom_loc"; ls *)
+ for i in $(cd "$custom_loc"; ls * 2>/dev/null)
do
- printf "APPLET_SCRIPTED(%s, scripted, BB_DIR_USR_BIN, BB_SUID_DROP, dummy)\n" $i;
+ printf "APPLET_SCRIPTED(%s, scripted, BB_DIR_USR_BIN, BB_SUID_DROP, scripted)\n" $i;
done
fi
}
- Move the dummy usage messages for custom applets to usage.h and
change the name from 'dummy' to 'scripted'.
- Hide an error from gen_build_files.sh if an embed directory exists
but is empty.
- Strip leading comments and blank lines from embedded scripts before
compressing them. Removing all comments would be nice but is hard.
Signed-off-by: Ron Yorston <***@pobox.com>
---
Makefile | 2 +-
include/applets.src.h | 6 ------
include/usage.src.h | 3 +++
scripts/embedded_scripts | 12 ++++++++++--
scripts/gen_build_files.sh | 4 ++--
5 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
index 4b5a01df9..f0b4da234 100644
--- a/Makefile
+++ b/Makefile
@@ -853,7 +853,7 @@ quiet_cmd_split_autoconf = SPLIT include/autoconf.h -> include/config/*
quiet_cmd_gen_embedded_scripts = GEN include/embedded_scripts.h
cmd_gen_embedded_scripts = $(srctree)/scripts/embedded_scripts include/embedded_scripts.h $(srctree)/embed $(srctree)/applets_sh
#bbox# piggybacked generation of few .h files
-include/config/MARKER: scripts/basic/split-include include/autoconf.h $(wildcard $(srctree)/embed/*) $(srctree)/scripts/embedded_scripts
+include/config/MARKER: scripts/basic/split-include include/autoconf.h $(wildcard $(srctree)/embed/*) $(wildcard $(srctree)/applets_sh/*) $(srctree)/scripts/embedded_scripts
$(call cmd,split_autoconf)
$(call cmd,gen_bbconfigopts)
$(call cmd,gen_common_bufsiz)
diff --git a/include/applets.src.h b/include/applets.src.h
index a9db5d160..60968cec7 100644
--- a/include/applets.src.h
+++ b/include/applets.src.h
@@ -22,12 +22,6 @@ s - suid type:
BB_SUID_REQUIRE or BB_SUID_MAYBE applet.
*/
-#define NOUSAGE_STR "\b"
-
-#define dummy_trivial_usage NOUSAGE_STR \
-
-#define dummy_full_usage "" \
-
#if defined(PROTOTYPES)
# define APPLET(name,l,s) int name##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
# define APPLET_ODDNAME(name,main,l,s,help) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
diff --git a/include/usage.src.h b/include/usage.src.h
index 00369dfb3..d22efd3ba 100644
--- a/include/usage.src.h
+++ b/include/usage.src.h
@@ -14,6 +14,9 @@
#define NOUSAGE_STR "\b"
+#define scripted_trivial_usage NOUSAGE_STR
+#define scripted_full_usage ""
+
#if !ENABLE_USE_BB_CRYPT || ENABLE_USE_BB_CRYPT_SHA
# define CRYPT_METHODS_HELP_STR "des,md5,sha256/512" \
" (default "CONFIG_FEATURE_DEFAULT_PASSWD_ALGO")"
diff --git a/scripts/embedded_scripts b/scripts/embedded_scripts
index c2e7c6961..b419bcb1f 100755
--- a/scripts/embedded_scripts
+++ b/scripts/embedded_scripts
@@ -63,15 +63,23 @@ then
exit 1
fi
+# remove leading comments and blank lines
+strip_header() {
+ awk '
+ /^#/ { if (!found) next; }
+ /^$/ { if (!found) next; }
+ { found=1; print; }' $1
+}
+
concatenate_scripts() {
for i in $custom_scripts
do
- cat $custom_loc/$i
+ strip_header $custom_loc/$i
printf '\000'
done
for i in $applet_scripts
do
- cat $applet_loc/$i
+ strip_header $applet_loc/$i
printf '\000'
done
}
diff --git a/scripts/gen_build_files.sh b/scripts/gen_build_files.sh
index 64e4bffa9..362632df3 100755
--- a/scripts/gen_build_files.sh
+++ b/scripts/gen_build_files.sh
@@ -23,9 +23,9 @@ custom_scripts()
custom_loc="$1"
if [ -d "$custom_loc" ]
then
- for i in $(cd "$custom_loc"; ls *)
+ for i in $(cd "$custom_loc"; ls * 2>/dev/null)
do
- printf "APPLET_SCRIPTED(%s, scripted, BB_DIR_USR_BIN, BB_SUID_DROP, dummy)\n" $i;
+ printf "APPLET_SCRIPTED(%s, scripted, BB_DIR_USR_BIN, BB_SUID_DROP, scripted)\n" $i;
done
fi
}
--
2.19.1
2.19.1