6ac4f697106d08c40b72b7c9e1cb38de98c61e74
[openwrt/svn-archive/archive.git] / openwrt / package / busybox / config / 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 BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
11 help
12 Choose a shell. The ash shell is the most bash compatible
13 and full featured one.
14
15 config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
16 select BUSYBOX_CONFIG_ASH
17 bool "ash"
18
19 config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
20 select BUSYBOX_CONFIG_HUSH
21 bool "hush"
22
23 config BUSYBOX_CONFIG_FEATURE_SH_IS_LASH
24 select BUSYBOX_CONFIG_LASH
25 bool "lash"
26
27 config BUSYBOX_CONFIG_FEATURE_SH_IS_MSH
28 select BUSYBOX_CONFIG_MSH
29 bool "msh"
30
31 config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
32 bool "none"
33
34 endchoice
35
36 config BUSYBOX_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 BUSYBOX_CONFIG_ASH
48
49 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
50 bool " Enable Job control"
51 default y
52 depends on BUSYBOX_CONFIG_ASH
53 help
54 Enable job control in the ash shell.
55
56 config BUSYBOX_CONFIG_ASH_ALIAS
57 bool " Enable alias support"
58 default y
59 depends on BUSYBOX_CONFIG_ASH
60 help
61 Enable alias support in the ash shell.
62
63 config BUSYBOX_CONFIG_ASH_MATH_SUPPORT
64 bool " Enable Posix math support"
65 default y
66 depends on BUSYBOX_CONFIG_ASH
67 help
68 Enable math support in the ash shell.
69
70 config BUSYBOX_CONFIG_ASH_MATH_SUPPORT_64
71 bool " Extend Posix math support to 64 bit"
72 default n
73 depends on BUSYBOX_CONFIG_ASH_MATH_SUPPORT
74 help
75 Enable 64-bit math support in the ash shell. This will make
76 the shell slightly larger, but will allow computation with very
77 large numbers.
78
79 config BUSYBOX_CONFIG_ASH_GETOPTS
80 bool " Enable getopts builtin to parse positional parameters"
81 default y
82 depends on BUSYBOX_CONFIG_ASH
83 help
84 Enable getopts builtin in the ash shell.
85
86 config BUSYBOX_CONFIG_ASH_CMDCMD
87 bool " Enable cmdcmd to override shell builtins"
88 default y
89 depends on BUSYBOX_CONFIG_ASH
90 help
91 Enable support for the ash 'command' builtin, which allows
92 you to run the specified command with the specified arguments,
93 even when there is an ash builtin command with the same name.
94
95 config BUSYBOX_CONFIG_ASH_MAIL
96 bool " Check for new mail on interactive shells"
97 default n
98 depends on BUSYBOX_CONFIG_ASH
99 help
100 Enable "check for new mail" in the ash shell.
101
102 config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
103 bool " Optimize for size instead of speed"
104 default y
105 depends on BUSYBOX_CONFIG_ASH
106 help
107 Compile ash for reduced size at price of speed.
108
109 config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
110 bool " Enable pseudorandom generator and variable $RANDOM"
111 default n
112 depends on BUSYBOX_CONFIG_ASH
113 help
114 Enable pseudorandom generator and dynamic variable "$RANDOM".
115 Each read of "$RANDOM" will generate a new pseudorandom value.
116 You can reset the generator by using a specified start value.
117 After "unset RANDOM" then generator will switch off and this
118 variable will no longer have special treatment.
119
120 config BUSYBOX_CONFIG_HUSH
121 bool "hush"
122 default n
123 help
124 hush is a very small shell (just 18k) and it has fairly complete
125 Bourne shell grammar. It even handles all the normal flow control
126 options such as if/then/elif/else/fi, for/in/do/done, while loops,
127 etc.
128
129 It does not handle case/esac, select, function, here documents ( <<
130 word ), arithmetic expansion, aliases, brace expansion, tilde
131 expansion, &> and >& redirection of stdout+stderr, etc.
132
133
134 config BUSYBOX_CONFIG_LASH
135 bool "lash"
136 default n
137 help
138 lash is the very smallest shell (adds just 10k) and it is quite
139 usable as a command prompt, but it is not suitable for any but the
140 most trivial scripting (such as an initrd that calls insmod a few
141 times) since it does not understand any Bourne shell grammar. It
142 does handle pipes, redirects, and job control though. Adding in
143 command editing makes it a very nice lightweight command prompt.
144
145
146 config BUSYBOX_CONFIG_MSH
147 bool "msh"
148 default n
149 help
150 The minix shell (adds just 30k) is quite complete and handles things
151 like for/do/done, case/esac and all the things you expect a Bourne
152 shell to do. It is not always pedantically correct about Bourne
153 shell grammar (try running the shell testscript "tests/sh.testcases"
154 on it and compare vs bash) but for most things it works quite well.
155 It also uses only vfork, so it can be used on uClinux systems.
156
157 comment "Bourne Shell Options"
158 depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
159
160 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
161 bool "Hide message on interactive shell startup"
162 default n
163 depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
164 help
165 Remove the busybox introduction when starting a shell.
166
167 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE_SHELL
168 bool "Standalone shell"
169 default n
170 depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
171 help
172 This option causes the selected busybox shell to use busybox applets
173 in preference to executables in the PATH whenever possible. For
174 example, entering the command 'ifconfig' into the shell would cause
175 busybox to use the ifconfig busybox applet. Specifying the fully
176 qualified executable name, such as '/sbin/ifconfig' will still
177 execute the /sbin/ifconfig executable on the filesystem. This option
178 is generally used when creating a staticly linked version of busybox
179 for use as a rescue shell, in the event that you screw up your system.
180
181 Note that when using this option, the shell will attempt to directly
182 run '/bin/busybox'. If you do not have the busybox binary sitting in
183 that exact location with that exact name, this option will not work at
184 all.
185
186 config BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
187 bool "command line editing"
188 default y
189 depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
190 help
191 Enable command editing in shell.
192
193 config BUSYBOX_CONFIG_FEATURE_COMMAND_HISTORY
194 int "history size"
195 default 15
196 depends on BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
197 help
198 Specify command history size in shell.
199
200 config BUSYBOX_CONFIG_FEATURE_COMMAND_SAVEHISTORY
201 bool "history saving"
202 default n
203 depends on BUSYBOX_CONFIG_ASH && BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
204 help
205 Enable history saving in ash shell.
206
207 config BUSYBOX_CONFIG_FEATURE_COMMAND_TAB_COMPLETION
208 bool "tab completion"
209 default y
210 depends on BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
211 help
212 Enable tab completion in shell.
213
214 config BUSYBOX_CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
215 bool "username completion"
216 default n
217 depends on BUSYBOX_CONFIG_FEATURE_COMMAND_TAB_COMPLETION
218 help
219 Enable username completion in shell.
220
221 config BUSYBOX_CONFIG_FEATURE_SH_FANCY_PROMPT
222 bool "Fancy shell prompts"
223 default y
224 depends on BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
225 help
226 Setting this option allows for prompts to use things like \w and
227 \$ and also using escape codes.
228
229 endmenu