busybox/scripts
Denys Vlasenko 4f2ef4a836 ash: allow shell scripts to be embedded in the binary
To assist in the deployment of shell scripts it may be convenient
to embed them in the BusyBox binary.

'Embed scripts in the binary' takes any files in the directory
'embed', concatenates them with null separators, compresses them
and embeds them in the binary.

When scripts are embedded in the binary, scripts can be run as
'busybox SCRIPT [ARGS]' or by usual (sym)link mechanism.

embed/nologin is provided as an example.

function                                             old     new   delta
packed_scripts                                         -     123    +123
unpack_scripts                                         -      87     +87
ash_main                                            1103    1171     +68
run_applet_and_exit                                   78     128     +50
get_script_content                                     -      32     +32
script_names                                           -      10     +10
expmeta                                              663     659      -4
------------------------------------------------------------------------------
(add/remove: 4/0 grow/shrink: 2/1 up/down: 370/-4)            Total: 366 bytes

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-01 10:15:13 +01:00
..
basic typo fixes 2015-05-25 13:46:36 +02:00
kconfig scripts/kconfig/mconf.c: survive is SIGWINCH is not defined 2018-04-06 19:05:53 +02:00
bb_release Update release script to generate detached signatures and checksum files 2018-06-09 21:19:35 +02:00
bloat-o-meter bloat-o-meter: add usage info 2013-10-16 19:18:05 +02:00
checkhelp.awk whitespace fixes 2010-01-25 13:39:24 +01:00
checkstack.pl attack the biggest stack users: 2007-12-02 08:35:37 +00:00
cleanup_printf2puts typo fix 2010-11-06 22:17:30 +01:00
echo.c do not use `a' quoting style in comments 2017-08-02 14:26:33 +02:00
embedded_scripts ash: allow shell scripts to be embedded in the binary 2018-11-01 10:15:13 +01:00
find_bad_common_bufsiz Audit bb_common_bufsiz usage, add script which looks for misuse. 2007-06-04 10:16:52 +00:00
find_stray_common_vars make variables static 2007-09-27 10:08:02 +00:00
find_stray_empty_lines find_stray_empty_lines: make it work 2010-07-28 21:29:19 +02:00
fix_ws.sh whitespace fixes 2008-07-12 23:02:43 +00:00
gcc-version.sh disable -Wold-style-definition for gcc 3.x 2007-01-29 17:08:51 +00:00
gen_build_files.sh remove "local" bashism from a few scripts 2017-01-24 20:52:42 +01:00
generate_BUFSIZ.sh build system: make CONFIG_FEATURE_USE_BSS_TAIL less funky 2016-06-29 15:00:52 +02:00
Kbuild.include - need to pass the PATH down to the gcc-version check to be able to find the correct cc. 2007-06-25 10:41:01 +00:00
Kbuild.src mass renaming Kbuild -> Kbuild.src, Config.in -> Config.src 2010-06-04 20:10:51 +02:00
Makefile.build build system: specify '-nostldlib' when linking to .o files 2014-04-02 12:12:46 +02:00
Makefile.clean scripts/Makefile.clean: Make Kbuild and Makefile optional 2010-05-16 02:50:07 +02:00
Makefile.host *: trailing empty lines removed 2010-07-26 01:49:12 +02:00
Makefile.IMA klibc-utils: new applets: resume, nuke, minips 2017-08-18 19:15:29 +02:00
Makefile.lib *: trailing empty lines removed 2010-07-26 01:49:12 +02:00
memusage scripts: add a script which prints memory map of running busybox 2008-05-26 18:41:35 +00:00
mkconfigs build system: use od -b instead of od -t x1 2013-11-26 14:56:29 +01:00
mkdiff_obj scripts/mkdiff_obj: show "size OBJFILE" too 2010-10-29 19:06:20 +02:00
mkdiff_obj_bloat *: a few more NOINLINEs 2009-10-08 14:35:37 +02:00
mkmakefile mkmakefile: make 3.82 fix 2010-10-19 12:49:51 +02:00
objsizes ...and exclude LC_ALL too 2008-12-01 12:38:36 +00:00
randomtest scripts/randomtest: disable CONFIG_NSLOOKUP for uclibc 2018-06-26 17:22:35 +02:00
randomtest.loop randomconfig fixes 2017-12-31 17:30:02 +01:00
sample_pmap scripts: add a script which prints memory map of running busybox 2008-05-26 18:41:35 +00:00
showasm *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
test_make_clean remove defconfig. Now "make defconfig" simply uses defaults from Config.in 2010-06-06 04:14:28 +02:00
test_make_O fix make O=dir build 2010-07-09 01:25:36 +02:00
test_setenv_leak.c crond: do not assume setenv() does not leak 2017-07-22 02:25:47 +02:00
trylink build system: FEATURE_LIBBUSYBOX_STATIC - try to pull libc/libm into libbusybox 2017-07-15 14:52:26 +02:00