b064ed41ba07e1276e1c67addfef43a65e1ccd2d
[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 "Another Bourne-like Shell"
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_ALIAS
57         bool "  Enable alias support"
58         default y
59         depends on CONFIG_ASH
60         help
61           Enable alias support in the ash shell.
62
63 config CONFIG_ASH_MATH_SUPPORT
64         bool "  Enable Posix math support"
65         default y
66         depends on CONFIG_ASH
67         help
68           Enable math support in the ash shell.
69
70 config CONFIG_ASH_GETOPTS
71         bool "  Enable getopt builtin to parse positional parameters"
72         default n
73         depends on CONFIG_ASH
74         help
75           Enable builtin getopt in the ash shell.
76
77 config CONFIG_ASH_CMDCMD
78         bool "  Enable cmdcmd to override shell builtins"
79         default n
80         depends on CONFIG_ASH
81         help
82           Enable support for the ash 'command' builtin, which allows
83           you to run the specified command with the specified arguments,
84           even when there is an ash builtin command with the same name.
85
86 config CONFIG_ASH_MAIL
87         bool "  Check for new mail on interactive shells"
88         default y
89         depends on CONFIG_ASH
90         help
91           Enable "check for new mail" in the ash shell.
92
93 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
94         bool "  Optimize for size instead of speed"
95         default y
96         depends on CONFIG_ASH
97         help
98           Compile ash for reduced size at price of speed.
99
100 config CONFIG_ASH_RANDOM_SUPPORT
101         bool "  Enable pseudorandom generator and variable $RANDOM"
102         default n
103         depends on CONFIG_ASH
104         help
105           Enable pseudorandom generator and dynamic variable "$RANDOM".
106           Each read of "$RANDOM" will generate a new pseudorandom value.
107           You can reset the generator by using a specified start value.
108           After "unset RANDOM" then generator will switch off and this
109           variable will no longer have special treatment.
110
111 config CONFIG_HUSH
112         bool "hush"
113         default n
114         help
115           hush is a very small shell (just 18k) and it has fairly complete
116           Bourne shell grammar.  It even handles all the normal flow control
117           options such as if/then/elif/else/fi, for/in/do/done, while loops,
118           etc.
119
120           It does not handle case/esac, select, function, here documents ( <<
121           word ), arithmetic expansion, aliases, brace expansion, tilde
122           expansion, &> and >& redirection of stdout+stderr, etc.
123
124
125 config CONFIG_LASH
126         bool "lash"
127         default n
128         help
129           lash is the very smallest shell (adds just 10k) and it is quite
130           usable as a command prompt, but it is not suitable for any but the
131           most trivial scripting (such as an initrd that calls insmod a few
132           times) since it does not understand any Bourne shell grammar.  It
133           does handle pipes, redirects, and job control though.  Adding in
134           command editing makes it a very nice lightweight command prompt.
135
136
137 config CONFIG_MSH
138         bool "msh"
139         default n
140         help
141           The minix shell (adds just 30k) is quite complete and handles things
142           like for/do/done, case/esac and all the things you expect a Bourne
143           shell to do.  It is not always pedantically correct about Bourne
144           shell grammar (try running the shell testscript "tests/sh.testcases"
145           on it and compare vs bash) but for most things it works quite well.
146           It also uses only vfork, so it can be used on uClinux systems.
147
148 comment "Bourne Shell Options"
149         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
150
151 config CONFIG_FEATURE_SH_EXTRA_QUIET
152         bool "Hide message on interactive shell startup"
153         default n
154         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
155         help
156           Remove the busybox introduction when starting a shell.
157
158 config CONFIG_FEATURE_SH_STANDALONE_SHELL
159         bool "Standalone shell"
160         default n
161         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
162         help
163           This option causes the selected busybox shell to use busybox applets
164           in preference to executables in the PATH whenever possible.  For
165           example, entering the command 'ifconfig' into the shell would cause
166           busybox to use the ifconfig busybox applet.  Specifying the fully
167           qualified executable name, such as '/sbin/ifconfig' will still
168           execute the /sbin/ifconfig executable on the filesystem.  This option
169           is generally used when creating a staticly linked version of busybox
170           for use as a rescue shell, in the event that you screw up your system.
171
172 config CONFIG_FEATURE_COMMAND_EDITING
173         bool "command line editing"
174         default n
175         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
176         help
177           Enable command editing in shell.
178
179 config CONFIG_FEATURE_COMMAND_HISTORY
180         int "history size"
181         default 15
182         depends on CONFIG_FEATURE_COMMAND_EDITING
183         help
184           Specify command history size in shell.
185
186 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
187         bool "history saving"
188         default n
189         depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
190         help
191           Enable history saving in ash shell.
192
193 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
194         bool "tab completion"
195         default n
196         depends on CONFIG_FEATURE_COMMAND_EDITING
197         help
198           Enable tab completion in shell.
199
200 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
201         bool "username completion"
202         default n
203         depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
204         help
205           Enable username completion in shell.
206
207 config CONFIG_FEATURE_SH_FANCY_PROMPT
208         bool "Fancy shell prompts"
209         default n
210         depends on CONFIG_FEATURE_COMMAND_EDITING
211         help
212           Setting this option allows for prompts to use things like \w and
213           \$ and also using escape codes.
214
215 endmenu