mirror of
https://github.com/topjohnwu/ndk-busybox.git
synced 2024-12-02 00:36:20 +00:00
Use the new 'select' option to make the shell config
much less evil and far more obvious. -Erik
This commit is contained in:
parent
c601ff149a
commit
b287e2e27a
@ -13,15 +13,19 @@ choice
|
|||||||
and full featured.
|
and full featured.
|
||||||
|
|
||||||
config CONFIG_FEATURE_SH_IS_ASH
|
config CONFIG_FEATURE_SH_IS_ASH
|
||||||
|
select CONFIG_ASH
|
||||||
bool "ash"
|
bool "ash"
|
||||||
|
|
||||||
config CONFIG_FEATURE_SH_IS_HUSH
|
config CONFIG_FEATURE_SH_IS_HUSH
|
||||||
|
select CONFIG_HUSH
|
||||||
bool "hush"
|
bool "hush"
|
||||||
|
|
||||||
config CONFIG_FEATURE_SH_IS_LASH
|
config CONFIG_FEATURE_SH_IS_LASH
|
||||||
|
select CONFIG_LASH
|
||||||
bool "lash"
|
bool "lash"
|
||||||
|
|
||||||
config CONFIG_FEATURE_SH_IS_MSH
|
config CONFIG_FEATURE_SH_IS_MSH
|
||||||
|
select CONFIG_MSH
|
||||||
bool "msh"
|
bool "msh"
|
||||||
|
|
||||||
config CONFIG_FEATURE_SH_IS_NONE
|
config CONFIG_FEATURE_SH_IS_NONE
|
||||||
@ -29,20 +33,15 @@ config CONFIG_FEATURE_SH_IS_NONE
|
|||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
if CONFIG_FEATURE_SH_IS_ASH
|
|
||||||
config CONFIG_ASH
|
|
||||||
default y
|
|
||||||
|
|
||||||
comment "ash (forced enabled as default shell)"
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !CONFIG_FEATURE_SH_IS_ASH
|
|
||||||
config CONFIG_ASH
|
config CONFIG_ASH
|
||||||
bool "ash"
|
bool "ash"
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Make sh a link to ash.
|
Tha 'ash' shell adds about 60k in the default configuration and is
|
||||||
endif
|
the most complete and most pedantically correct shell included with
|
||||||
|
busybox. This shell is actually a derivitive the Debian 'dash' shell
|
||||||
|
(by Herbert Xu), which was created by porting the 'ash' shell
|
||||||
|
(written by Kenneth Almquist) from NetBSD.
|
||||||
|
|
||||||
comment "Ash Shell Options"
|
comment "Ash Shell Options"
|
||||||
depends on CONFIG_ASH
|
depends on CONFIG_ASH
|
||||||
@ -98,51 +97,41 @@ config CONFIG_ASH_OPTIMIZE_FOR_SIZE
|
|||||||
help
|
help
|
||||||
Compile ash for reduced size at price of speed.
|
Compile ash for reduced size at price of speed.
|
||||||
|
|
||||||
if CONFIG_FEATURE_SH_IS_HUSH
|
|
||||||
config CONFIG_HUSH
|
|
||||||
default y
|
|
||||||
|
|
||||||
comment "hush (forced enabled as default shell)"
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !CONFIG_FEATURE_SH_IS_HUSH
|
|
||||||
config CONFIG_HUSH
|
config CONFIG_HUSH
|
||||||
bool "hush"
|
bool "hush"
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
Make sh a link to hush.
|
hush is very small shell (just 18k) and it has fairly complete Bourne
|
||||||
endif
|
shell grammer. It even handles all the normal flow control options
|
||||||
|
such as if/then/elif/else/fi, for/in/do/done, while loops, etc.
|
||||||
|
|
||||||
if CONFIG_FEATURE_SH_IS_LASH
|
It does not handle case/esac, select, function, here documents ( <<
|
||||||
config CONFIG_LASH
|
word ), arithmetic expansion, aliases, brace expansion, tilde
|
||||||
default y
|
expansion, &> and >& redirection of stdout+stderr, etc.
|
||||||
|
|
||||||
comment "lash (forced enabled as default shell)"
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !CONFIG_FEATURE_SH_IS_LASH
|
|
||||||
config CONFIG_LASH
|
config CONFIG_LASH
|
||||||
bool "lash"
|
bool "lash"
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
Make sh a link to lash.
|
lash is the very smallest shell (adds just 10k) and it is quite
|
||||||
endif
|
usable as a command prompt, but it is not suitable for any but the
|
||||||
|
most trivial scripting (such as an initrd that calls insmod a few
|
||||||
|
times) since it does not understand any Bourne shell grammer. It
|
||||||
|
does handle pipes, redirects, and job control though. Adding in
|
||||||
|
command editing makes it a very nice lightweight command prompt.
|
||||||
|
|
||||||
if CONFIG_FEATURE_SH_IS_MSH
|
|
||||||
config CONFIG_MSH
|
|
||||||
default y
|
|
||||||
|
|
||||||
comment "msh (forced enabled as default shell)"
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !CONFIG_FEATURE_SH_IS_MSH
|
|
||||||
config CONFIG_MSH
|
config CONFIG_MSH
|
||||||
bool "msh"
|
bool "msh"
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
Make sh a link to msh.
|
The minix shell (adds just 30k) is quite complete and handles things
|
||||||
endif
|
like for/do/done, case/esac and all the things you expect a Bourne
|
||||||
|
shell to do. It is not always pedantically correct about Bourne
|
||||||
|
shell grammer (try running the shell testscript "tests/sh.testcases"
|
||||||
|
on it and compare vs bash) but for most things it works quite well.
|
||||||
|
It also uses only vfork, so it can be used on uClinux systems.
|
||||||
|
|
||||||
comment "Bourne Shell Options"
|
comment "Bourne Shell Options"
|
||||||
depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
|
depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
|
||||||
|
Loading…
Reference in New Issue
Block a user