a3620c0e27332874dcc8b42b4900bbc9c3ebb1ef
[oweals/busybox.git] / shell / Config.in
1 #
2 # For a description of the syntax of this configuration file,
3 # see scripts/kbuild/config-language.txt.
4 #
5
6 menu "Shells"
7
8 choice
9         prompt "Choose your default shell"
10         default CONFIG_FEATURE_SH_IS_NONE
11         help
12           Choose a shell. The ash shell is the most bash compatible
13           and full featured one.
14
15 config CONFIG_FEATURE_SH_IS_ASH
16         select CONFIG_ASH
17         bool "ash"
18
19 config CONFIG_FEATURE_SH_IS_HUSH
20         select CONFIG_HUSH
21         bool "hush"
22
23 config CONFIG_FEATURE_SH_IS_LASH
24         select CONFIG_LASH
25         bool "lash"
26
27 config CONFIG_FEATURE_SH_IS_MSH
28         select CONFIG_MSH
29         bool "msh"
30
31 config CONFIG_FEATURE_SH_IS_NONE
32         bool "none"
33
34 endchoice
35
36 config CONFIG_ASH
37         bool "ash"
38         default y
39         help
40           Tha 'ash' shell adds about 60k in the default configuration and is
41           the most complete and most pedantically correct shell included with
42           busybox.  This shell is actually a derivative of the Debian 'dash'
43           shell (by Herbert Xu), which was created by porting the 'ash' shell
44           (written by Kenneth Almquist) from NetBSD.
45
46 comment "Ash Shell Options"
47         depends on CONFIG_ASH
48
49 config CONFIG_ASH_JOB_CONTROL
50         bool "  Enable Job control"
51         default y
52         depends on CONFIG_ASH
53         help
54           Enable job control in the ash shell.
55
56 config CONFIG_ASH_READ_NCHARS
57         bool "  Enable 'read -n N' and 'read -s' support"
58         default n
59         depends on CONFIG_ASH
60         help
61           'read -n N' will return a value after N characters have been read.
62           'read -s' will read without echoing the user's input.
63
64 config CONFIG_ASH_READ_TIMEOUT
65         bool "  Enable 'read -t S' support."
66         default n
67         depends on CONFIG_ASH
68         help
69           'read -t S' will return a value after S seconds have passed.
70           This implementation will allow fractional seconds, expressed
71           as a decimal fraction, e.g. 'read -t 2.5 foo'.
72
73 config CONFIG_ASH_ALIAS
74         bool "  Enable alias support"
75         default y
76         depends on CONFIG_ASH
77         help
78           Enable alias support in the ash shell.
79
80 config CONFIG_ASH_MATH_SUPPORT
81         bool "  Enable Posix math support"
82         default y
83         depends on CONFIG_ASH
84         help
85           Enable math support in the ash shell.
86
87 config CONFIG_ASH_MATH_SUPPORT_64
88         bool "    Extend Posix math support to 64 bit"
89         default n
90         depends on CONFIG_ASH_MATH_SUPPORT
91         help
92           Enable 64-bit math support in the ash shell.  This will make
93           the shell slightly larger, but will allow computation with very
94           large numbers.
95
96 config CONFIG_ASH_GETOPTS
97         bool "  Enable getopts builtin to parse positional parameters"
98         default n
99         depends on CONFIG_ASH
100         help
101           Enable getopts builtin in the ash shell.
102
103 config CONFIG_ASH_CMDCMD
104         bool "  Enable cmdcmd to override shell builtins"
105         default n
106         depends on CONFIG_ASH
107         help
108           Enable support for the ash 'command' builtin, which allows
109           you to run the specified command with the specified arguments,
110           even when there is an ash builtin command with the same name.
111
112 config CONFIG_ASH_BUILTIN_ECHO
113         bool "  Enable builtin version of 'echo'"
114         default n
115         depends on CONFIG_ASH
116         help
117           Enable support for echo, built in to ash.
118
119 # this entry also appears in coreutils/Config.in, next to the echo applet
120 config CONFIG_FEATURE_FANCY_ECHO
121         bool "  Enable echo options (-n and -e)"
122         default y
123         depends on CONFIG_ASH_BUILTIN_ECHO
124         help
125           This adds options (-n and -e) to echo.
126
127 config CONFIG_ASH_MAIL
128         bool "  Check for new mail on interactive shells"
129         default y
130         depends on CONFIG_ASH
131         help
132           Enable "check for new mail" in the ash shell.
133
134 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
135         bool "  Optimize for size instead of speed"
136         default y
137         depends on CONFIG_ASH
138         help
139           Compile ash for reduced size at price of speed.
140
141 config CONFIG_ASH_RANDOM_SUPPORT
142         bool "  Enable pseudorandom generator and variable $RANDOM"
143         default n
144         depends on CONFIG_ASH
145         help
146           Enable pseudorandom generator and dynamic variable "$RANDOM".
147           Each read of "$RANDOM" will generate a new pseudorandom value.
148           You can reset the generator by using a specified start value.
149           After "unset RANDOM" then generator will switch off and this
150           variable will no longer have special treatment.
151
152 config CONFIG_ASH_EXPAND_PRMT
153         bool "  Support expand PS#"
154         default n
155         depends on CONFIG_ASH
156         help
157           "PS#" may be have commands. It option enable expand string
158           from prompt before each show.
159
160
161 config CONFIG_HUSH
162         bool "hush"
163         default n
164         help
165           hush is a very small shell (just 18k) and it has fairly complete
166           Bourne shell grammar.  It even handles all the normal flow control
167           options such as if/then/elif/else/fi, for/in/do/done, while loops,
168           etc.
169
170           It does not handle case/esac, select, function, here documents ( <<
171           word ), arithmetic expansion, aliases, brace expansion, tilde
172           expansion, &> and >& redirection of stdout+stderr, etc.
173
174
175 config CONFIG_LASH
176         bool "lash"
177         default n
178         help
179           lash is the very smallest shell (adds just 10k) and it is quite
180           usable as a command prompt, but it is not suitable for any but the
181           most trivial scripting (such as an initrd that calls insmod a few
182           times) since it does not understand any Bourne shell grammar.  It
183           does handle pipes, redirects, and job control though.  Adding in
184           command editing makes it a very nice lightweight command prompt.
185
186
187 config CONFIG_MSH
188         bool "msh"
189         default n
190         help
191           The minix shell (adds just 30k) is quite complete and handles things
192           like for/do/done, case/esac and all the things you expect a Bourne
193           shell to do.  It is not always pedantically correct about Bourne
194           shell grammar (try running the shell testscript "tests/sh.testcases"
195           on it and compare vs bash) but for most things it works quite well.
196           It also uses only vfork, so it can be used on uClinux systems.
197
198 comment "Bourne Shell Options"
199         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
200
201 config CONFIG_FEATURE_SH_EXTRA_QUIET
202         bool "Hide message on interactive shell startup"
203         default n
204         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
205         help
206           Remove the busybox introduction when starting a shell.
207
208 config CONFIG_FEATURE_SH_STANDALONE_SHELL
209         bool "Standalone shell"
210         default n
211         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
212         help
213           This option causes the selected busybox shell to use busybox applets
214           in preference to executables in the PATH whenever possible.  For
215           example, entering the command 'ifconfig' into the shell would cause
216           busybox to use the ifconfig busybox applet.  Specifying the fully
217           qualified executable name, such as '/sbin/ifconfig' will still
218           execute the /sbin/ifconfig executable on the filesystem.  This option
219           is generally used when creating a staticly linked version of busybox
220           for use as a rescue shell, in the event that you screw up your system.
221
222           Note that when using this option, the shell will attempt to directly
223           run '/bin/busybox'.  If you do not have the busybox binary sitting in
224           that exact location with that exact name, this option will not work at
225           all.
226
227 config CONFIG_FEATURE_COMMAND_EDITING
228         bool "command line editing"
229         default n
230         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
231         help
232           Enable command editing in shell.
233
234 config CONFIG_FEATURE_COMMAND_EDITING_VI
235         bool "vi-style line editing commands"
236         default n
237         depends on CONFIG_FEATURE_COMMAND_EDITING
238         help
239           Enable vi-style line editing in the shell.  This mode can be
240           turned on and off with "set -o vi" and "set +o vi".
241
242 config CONFIG_FEATURE_COMMAND_HISTORY
243         int "history size"
244         default 15
245         depends on CONFIG_FEATURE_COMMAND_EDITING
246         help
247           Specify command history size in shell.
248
249 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
250         bool "history saving"
251         default n
252         depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
253         help
254           Enable history saving in ash shell.
255
256 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
257         bool "tab completion"
258         default n
259         depends on CONFIG_FEATURE_COMMAND_EDITING
260         help
261           Enable tab completion in shell.
262
263 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
264         bool "username completion"
265         default n
266         depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
267         help
268           Enable username completion in shell.
269
270 config CONFIG_FEATURE_SH_FANCY_PROMPT
271         bool "Fancy shell prompts"
272         default n
273         depends on CONFIG_FEATURE_COMMAND_EDITING
274         help
275           Setting this option allows for prompts to use things like \w and
276           \$ and also using escape codes.
277
278 endmenu