[PATCH] Tweaks to build process for embedded scripts

Ron Yorston rmy at pobox.com
Sun Nov 18 09:05:46 UTC 2018


- 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 <rmy at 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



More information about the busybox mailing list