busybox: optional --version support

function                                             old     new   delta
busybox_main                                         695     734     +39

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko committed 2025-10-13 21:56:47 +02:00
1 parent 3ff3cb483d
commit b99a529177
2 files changed
+19 -4

No files matched your search

+7
View File
@@ -204,6 +204,13 @@ config FEATURE_INSTALLER
busybox at runtime to create hard links or symlinks for all the
applets that are compiled into busybox.
config FEATURE_VERSION
bool "Support --version"
default y
depends on BUSYBOX
help
Enable 'busybox --version' support.
config INSTALL_NO_USR
bool "Don't use /usr"
default n
+12 -4
View File
@@ -892,14 +892,14 @@ int busybox_main(int argc UNUSED_PARAM, char **argv)
}
if (strcmp(argv[1], "--help") == 0) {
/* "busybox --help [<applet>]" */
/* "busybox --help [APPLET]" */
if (!argv[2]
# if ENABLE_FEATURE_SH_STANDALONE && ENABLE_FEATURE_TAB_COMPLETION
|| strcmp(argv[2], "busybox") == 0 /* prevent getting "No help available" */
# endif
)
goto help;
/* convert to "<applet> --help" */
/* convert to "APPLET --help" */
applet_name = argv[0] = argv[2];
argv[2] = NULL;
if (find_applet_by_name(applet_name) >= 0) {
@@ -907,8 +907,16 @@ int busybox_main(int argc UNUSED_PARAM, char **argv)
xfunc_error_retval = 0;
bb_show_usage();
} /* else: unknown applet, fall through (causes "applet not found" later) */
} else {
/* "busybox <applet> arg1 arg2 ..." */
}
# if ENABLE_FEATURE_VERSION
else if (!argv[2] && strcmp(argv[1], "--version") == 0) {
full_write1_str(bb_banner); /* reuse const string */
full_write1_str("\n");
return 0;
}
# endif
else {
/* "busybox APPLET arg1 arg2 ..." */
argv++;
/* We support "busybox /a/path/to/applet args..." too. Allows for
* "#!/bin/busybox"-style wrappers