#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#

menu "Shells"

choice
	prompt "Choose your default shell"
	default CONFIG_FEATURE_SH_IS_NONE
	help
	  Choose a shell. The ash shell is the most bash compatible
	  and full featured one.

config CONFIG_FEATURE_SH_IS_ASH
	select CONFIG_ASH
	bool "ash"

config CONFIG_FEATURE_SH_IS_HUSH
	select CONFIG_HUSH
	bool "hush"

config CONFIG_FEATURE_SH_IS_LASH
	select CONFIG_LASH
	bool "lash"

config CONFIG_FEATURE_SH_IS_MSH
	select CONFIG_MSH
	bool "msh"

config CONFIG_FEATURE_SH_IS_NONE
	bool "none"

endchoice

config CONFIG_ASH
	bool "ash"
	default y
	help
	  Tha 'ash' shell adds about 60k in the default configuration and is
	  the most complete and most pedantically correct shell included with
	  busybox.  This shell is actually a derivative of 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"
	depends on CONFIG_ASH

config CONFIG_ASH_JOB_CONTROL
	bool "  Enable Job control"
	default y
	depends on CONFIG_ASH
	help
	  Enable job control in the ash shell.

config CONFIG_ASH_READ_NCHARS
	bool "  Enable 'read -n N' and 'read -s' support"
	default n
	depends on CONFIG_ASH
	help
	  'read -n N' will return a value after N characters have been read.
	  'read -s' will read without echoing the user's input.

config CONFIG_ASH_READ_TIMEOUT
	bool "  Enable 'read -t S' support."
	default n
	depends on CONFIG_ASH
	help
	  'read -t S' will return a value after S seconds have passed.
	  This implementation will allow fractional seconds, expressed
	  as a decimal fraction, e.g. 'read -t 2.5 foo'.

config CONFIG_ASH_ALIAS
	bool "  Enable alias support"
	default y
	depends on CONFIG_ASH
	help
	  Enable alias support in the ash shell.

config CONFIG_ASH_MATH_SUPPORT
	bool "  Enable Posix math support"
	default y
	depends on CONFIG_ASH
	help
	  Enable math support in the ash shell.

config CONFIG_ASH_MATH_SUPPORT_64
	bool "    Extend Posix math support to 64 bit"
	default n
	depends on CONFIG_ASH_MATH_SUPPORT
	help
	  Enable 64-bit math support in the ash shell.  This will make
	  the shell slightly larger, but will allow computation with very
	  large numbers.

config CONFIG_ASH_GETOPTS
	bool "  Enable getopts builtin to parse positional parameters"
	default n
	depends on CONFIG_ASH
	help
	  Enable getopts builtin in the ash shell.

config CONFIG_ASH_CMDCMD
	bool "  Enable cmdcmd to override shell builtins"
	default n
	depends on CONFIG_ASH
	help
	  Enable support for the ash 'command' builtin, which allows
	  you to run the specified command with the specified arguments,
	  even when there is an ash builtin command with the same name.

config CONFIG_ASH_BUILTIN_ECHO
	bool "  Enable builtin version of 'echo'"
	default n
	depends on CONFIG_ASH
	help
	  Enable support for echo, built in to ash.

# this entry also appears in coreutils/Config.in, next to the echo applet
config CONFIG_FEATURE_FANCY_ECHO
	bool "  Enable echo options (-n and -e)"
	default y
	depends on CONFIG_ASH_BUILTIN_ECHO
	help
	  This adds options (-n and -e) to echo.

config CONFIG_ASH_MAIL
	bool "  Check for new mail on interactive shells"
	default y
	depends on CONFIG_ASH
	help
	  Enable "check for new mail" in the ash shell.

config CONFIG_ASH_OPTIMIZE_FOR_SIZE
	bool "  Optimize for size instead of speed"
	default y
	depends on CONFIG_ASH
	help
	  Compile ash for reduced size at price of speed.

config CONFIG_ASH_RANDOM_SUPPORT
	bool "  Enable pseudorandom generator and variable $RANDOM"
	default n
	depends on CONFIG_ASH
	help
	  Enable pseudorandom generator and dynamic variable "$RANDOM".
	  Each read of "$RANDOM" will generate a new pseudorandom value.
	  You can reset the generator by using a specified start value.
	  After "unset RANDOM" then generator will switch off and this
	  variable will no longer have special treatment.

config CONFIG_ASH_EXPAND_PRMT
	bool "  Support expand PS#"
	default n
	depends on CONFIG_ASH
	help
	  "PS#" may be have commands. It option enable expand string
	  from prompt before each show.


config CONFIG_HUSH
	bool "hush"
	default n
	help
	  hush is a very small shell (just 18k) and it has fairly complete
	  Bourne shell grammar.  It even handles all the normal flow control
	  options such as if/then/elif/else/fi, for/in/do/done, while loops,
	  etc.

	  It does not handle case/esac, select, function, here documents ( <<
	  word ), arithmetic expansion, aliases, brace expansion, tilde
	  expansion, &> and >& redirection of stdout+stderr, etc.


config CONFIG_LASH
	bool "lash"
	default n
	help
	  lash is the very smallest shell (adds just 10k) and it is quite
	  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 grammar.  It
	  does handle pipes, redirects, and job control though.  Adding in
	  command editing makes it a very nice lightweight command prompt.


config CONFIG_MSH
	bool "msh"
	default n
	help
	  The minix shell (adds just 30k) is quite complete and handles things
	  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 grammar (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"
	depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH

config CONFIG_FEATURE_SH_EXTRA_QUIET
	bool "Hide message on interactive shell startup"
	default n
	depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
	help
	  Remove the busybox introduction when starting a shell.

config CONFIG_FEATURE_SH_STANDALONE_SHELL
	bool "Standalone shell"
	default n
	depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
	help
	  This option causes the selected busybox shell to use busybox applets
	  in preference to executables in the PATH whenever possible.  For
	  example, entering the command 'ifconfig' into the shell would cause
	  busybox to use the ifconfig busybox applet.  Specifying the fully
	  qualified executable name, such as '/sbin/ifconfig' will still
	  execute the /sbin/ifconfig executable on the filesystem.  This option
	  is generally used when creating a staticly linked version of busybox
	  for use as a rescue shell, in the event that you screw up your system.

	  Note that when using this option, the shell will attempt to directly
	  run '/bin/busybox'.  If you do not have the busybox binary sitting in
	  that exact location with that exact name, this option will not work at
	  all.

config CONFIG_FEATURE_COMMAND_EDITING
	bool "command line editing"
	default n
	depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
	help
	  Enable command editing in shell.

config CONFIG_FEATURE_COMMAND_EDITING_VI
	bool "vi-style line editing commands"
	default n
	depends on CONFIG_FEATURE_COMMAND_EDITING
	help
	  Enable vi-style line editing in the shell.  This mode can be
	  turned on and off with "set -o vi" and "set +o vi".

config CONFIG_FEATURE_COMMAND_HISTORY
	int "history size"
	default 15
	depends on CONFIG_FEATURE_COMMAND_EDITING
	help
	  Specify command history size in shell.

config CONFIG_FEATURE_COMMAND_SAVEHISTORY
	bool "history saving"
	default n
	depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
	help
	  Enable history saving in ash shell.

config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
	bool "tab completion"
	default n
	depends on CONFIG_FEATURE_COMMAND_EDITING
	help
	  Enable tab completion in shell.

config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
	bool "username completion"
	default n
	depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
	help
	  Enable username completion in shell.

config CONFIG_FEATURE_SH_FANCY_PROMPT
	bool "Fancy shell prompts"
	default n
	depends on CONFIG_FEATURE_COMMAND_EDITING
	help
	  Setting this option allows for prompts to use things like \w and
	  \$ and also using escape codes.

endmenu
