diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-05-20 02:09:45 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-05-20 02:09:45 +0200 |
commit | 40477e2fdb3d32f4d368ee4f7c72ded4a2398082 (patch) | |
tree | 51f0970b7a48406f0331cbd1832119a9da778ba2 | |
parent | 2e068e725ce693afe5e89e10feaa9f24bef5f789 (diff) | |
download | busybox-40477e2fdb3d32f4d368ee4f7c72ded4a2398082.tar.gz |
shell: make it possible to alias one of shells to "bash"
function old new delta
packed_usage 27047 27054 +7
applet_names 2227 2232 +5
applet_main 1304 1308 +4
applet_nameofs 652 654 +2
applet_install_loc 163 164 +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/0 up/down: 19/0) Total: 19 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | include/applets.h | 2 | ||||
-rw-r--r-- | include/usage.h | 2 | ||||
-rw-r--r-- | shell/Config.in | 43 |
3 files changed, 37 insertions, 10 deletions
diff --git a/include/applets.h b/include/applets.h index 36b24856a..ff8799c63 100644 --- a/include/applets.h +++ b/include/applets.h @@ -79,6 +79,8 @@ IF_ARPING(APPLET(arping, _BB_DIR_USR_BIN, _BB_SUID_DROP)) IF_ASH(APPLET(ash, _BB_DIR_BIN, _BB_SUID_DROP)) IF_AWK(APPLET_NOEXEC(awk, awk, _BB_DIR_USR_BIN, _BB_SUID_DROP, awk)) IF_BASENAME(APPLET_NOFORK(basename, basename, _BB_DIR_USR_BIN, _BB_SUID_DROP, basename)) +IF_FEATURE_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, _BB_DIR_BIN, _BB_SUID_DROP, bash)) +IF_FEATURE_BASH_IS_HUSH(APPLET_ODDNAME(bash, hush, _BB_DIR_BIN, _BB_SUID_DROP, bash)) IF_BBCONFIG(APPLET(bbconfig, _BB_DIR_BIN, _BB_SUID_DROP)) //IF_BBSH(APPLET(bbsh, _BB_DIR_BIN, _BB_SUID_DROP)) IF_BEEP(APPLET(beep, _BB_DIR_USR_BIN, _BB_SUID_DROP)) diff --git a/include/usage.h b/include/usage.h index 3fce939bb..a295ab865 100644 --- a/include/usage.h +++ b/include/usage.h @@ -123,6 +123,8 @@ #define lash_full_usage "" #define msh_trivial_usage NOUSAGE_STR #define msh_full_usage "" +#define bash_trivial_usage NOUSAGE_STR +#define bash_full_usage "" #define awk_trivial_usage \ "[OPTIONS] [AWK_PROGRAM] [FILE]..." diff --git a/shell/Config.in b/shell/Config.in index cf599dff4..286a3415e 100644 --- a/shell/Config.in +++ b/shell/Config.in @@ -6,11 +6,11 @@ menu "Shells" choice - prompt "Choose your default shell" + prompt "Choose which shell is aliased to 'sh' name" default FEATURE_SH_IS_NONE help - Choose a shell. The ash shell is the most bash compatible - and full featured one. + Choose which shell you want to be executed by 'sh' alias. + The ash shell is the most bash compatible and full featured one. config FEATURE_SH_IS_ASH select ASH @@ -21,15 +21,38 @@ config FEATURE_SH_IS_HUSH select HUSH bool "hush" -####config FEATURE_SH_IS_LASH -#### select LASH -#### bool "lash" +config FEATURE_SH_IS_NONE + bool "none" -####config FEATURE_SH_IS_MSH -#### select MSH -#### bool "msh" +endchoice -config FEATURE_SH_IS_NONE +choice + prompt "Choose which shell is aliased to 'bash' name" + default FEATURE_BASH_IS_NONE + help + Choose which shell you want to be executed by 'bash' alias. + The ash shell is the most bash compatible and full featured one. + + Note that selecting this option does not switch on any bash + compatibility code. It merely makes it possible to install + /bin/bash (sym)link and run scripts which start with + #!/bin/bash line. + + Many systems use it in scripts which use bash-specific features, + even simple ones like $RANDOM. Without this option, busybox + can't be used for running them because it won't recongnize + "bash" as a supported applet name. + +config FEATURE_BASH_IS_ASH + select ASH + bool "ash" + depends on !NOMMU + +config FEATURE_BASH_IS_HUSH + select HUSH + bool "hush" + +config FEATURE_BASH_IS_NONE bool "none" endchoice |