Right, I threatened to make another patch, and here it comes.

This one goes back to the idea of keeping applet scripts and custom
scripts in separate directories.  Once again 'embed' is the place
to put custom scripts and it isn't managed by BusyBox.

Any scripts in 'embed' are given a fake applet configuration:

- always enabled
- no SUID, NOFORK, NOEXEC flags
- install to /usr/bin
- no help

Since all embedded scripts are now treated as applets there's no need
for special code to handle custom scripts:

- libbb/lineedit.c doesn't need to tab-complete them
- ash doesn't need to encode script numbers as applet numbers
- all embedded scripts are accessed by applet number, not name

This doesn't lead to much change in the size of the binary, though.
The default build doesn't have any custom scripts so the code to support
them isn't built.  The size increase when a single custom script is
added is reduced compared to [PATCH 1/3 v2], down by about 30 bytes.

The second patch in the series isn't required.  Since custom scripts
now appear as applets there's no need for additional code to list them.
That saves 152 bytes, according to [PATCH 2/3].

The third patch, to allow a profile script to be embedded, will need to
be modified.  I'll look into that some other time.

I like this patch more than the earlier 'Support custom and applet scripts
in embed directory'.  It retains the distinction between custom and applet
scripts at build-time.  The build scripts and the code are both simpler.
On the other hand it loses the distinction at run-time:  all embedded
scripts now look like applets.

I haven't given this patch much testing.  Be careful.

Ron
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to