menu "Toys"

# Fake config symbol to attach help entry to.

config TOYBOX
	bool
	default n
	help
	  usage: toybox [command] [arguments...]

	  With no arguments, shows available commands.  First argument is
	  name of a command to run, followed by any arguments to that command.

config BASENAME
	bool "basename"
	default y
	help
	  usage: basename path [suffix]

	  Print the part of path after the last slash, optionally minus suffix.

config BZCAT
	bool "bzcat"
	default n
	help
	  usage: bzcat [filename...]

	  Decompress listed files to stdout.  Use stdin if no files listed.

config CATV
	bool "catv"
	default y
	help
	  usage: catv [-evt] [filename...]

	  Display nonprinting characters as escape sequences.  Use M-x for
	  high ascii characters (>127), and ^x for other nonprinting chars.

	  -e	Mark each newline with $
	  -t	Show tabs as ^I
	  -v	Don't use ^x or M-x escapes.

config CHROOT
	bool "chroot"
	default y
	help
	  usage: chroot NEWPATH [commandline...]

	  Run command within a new root directory.  If no command, run /bin/sh.

config COUNT
	bool "count"
	default y
	help
	  usage: count

	  Copy stdin to stdout, displaying simple progress indicator to stderr.

config DF
	bool "df (disk free)"
	default y
	help
	  usage: df [-t type] [FILESYSTEM ...]

	  The "disk free" command, df shows total/used/available disk space for
	  each filesystem listed on the command line, or all currently mounted
	  filesystems.

	  -t type
		Display only filesystems of this type.

config DF_PEDANTIC
	bool "options -P and -k"
	default y
	depends on DF
	help
	  usage: df [-Pk]

	  -P	The SUSv3 "Pedantic" option

		Provides a slightly less useful output format dictated by
		the Single Unix Specification version 3, and sets the
		units to 512 bytes instead of the default 1024 bytes.

	  -k	Sets units back to 1024 bytes (the default without -P)

config DIRNAME
	bool "dirname"
	default y
	help
	  usage: dirname path

	  Print the part of path up to the last slash.

config DMESG
	bool "dmesg"
	default y
	help
	  usage: dmesg [-n level] [-s bufsize] | -c

	  Print or control the kernel ring buffer.

	  -n	Set kernel logging level (1-9).
	  -s	Size of buffer to read (in bytes), default 16384.
	  -c	Clear the ring buffer after printing.

config ECHO
	bool "echo"
	default y
	help
	  usage: echo [-ne] [args...]

	  Write each argument to stdout, with one space between each, followed
	  by a newline.

	  -n	No trailing newline.
	  -e	Process the following escape sequences:
		\\	backslash
		\a	alert (beep/flash)
		\b	backspace
		\c	Stop output here (avoids trailing newline)
		\f	form feed
		\n	newline
		\r	carriage return
		\t	horizontal tab
		\v	vertical tab

config FALSE
	bool "false"
	default y
	help
	  Return nonzero.

config HELLO
	bool "hello"
	default y
	help
	  A hello world program.  You don't need this.

config MDEV
	bool "mdev"
	default n
	help
	  usage: mdev [-s]

	  Create devices in /dev using information from /sys.

	  -s         Scan all entries in /sys to populate /dev.

config MDEV_CONF
	bool "Configuration file for mdev"
	default n
	depends on MDEV
	help
	  The mdev config file (/etc/mdev.conf) contains lines that look like:
	    hd[a-z][0-9]* 0:3 660

	  Each line must contain three whitespace separated fields.  The first
	  field is a regular expression matching one or more device names, and
	  the second and third fields are uid:gid and file permissions for
	  matching devies.

config MKE2FS
	bool "mke2fs"
	default n
	help
	  usage: mke2fs [-Fnq] [-b ###] [-N|i ###] [-m ###] device

	  Create an ext2 filesystem on a block device or filesystem image.

	  -F         Force to run on a mounted device
	  -n         Don't write to device
	  -q         Quiet (no output)
	  -b size    Block size (1024, 2048, or 4096)
          -N inodes  Allocate this many inodes
	  -i bytes   Allocate one inode for every XXX bytes of device
          -m percent Reserve this percent of filesystem space for root user

config MKE2FS_JOURNAL
	bool "Journaling support (ext3)"
	default n
	depends on MKE2FS
	help
	  usage: [-j] [-J size=###,device=XXX]

	  -j         Create journal (ext3)
	  -J         Journal options
	             size: Number of blocks (1024-102400)
	             device: Specify an external journal

config MKE2FS_GEN
	bool "Generate (gene2fs)"
	default n
	depends on MKE2FS
	help
	  usage: gene2fs [options] device filename

	  The [options] are the same as mke2fs.

config MKE2FS_LABEL
	bool "Label support"
	default n
	depends on MKE2FS
	help
	  usage: mke2fs [-L label] [-M path] [-o string]

	  -L         Volume label
	  -M         Path to mount point
          -o         Created by

config MKE2FS_EXTENDED
	bool "Extended options"
	default n
	depends on MKE2FS
	help
	  usage: mke2fs [-E stride=###] [-O option[,option]]

	  -E stride= Set RAID stripe size (in blocks)
	  -O [opts]  Specify fewer ext2 option flags (for old kernels)
	             All of these are on by default (as appropriate)
	     none         Clear default options (all but journaling)
	     dir_index    Use htree indexes for large directories
	     filetype     Store file type info in directory entry
	     has_journal  Set by -j
	     journal_dev  Set by -J device=XXX
	     sparse_super Don't allocate huge numbers of redundant superblocks

config MKFIFO
	bool "mkfifo"
	default y
	help
	  usage: mkfifo [-m mode] name...

	  Makes a named pipe at name.

	  -m mode	The mode of the pipe(s) created by mkfifo. It defaults to 0644.
			The format is in octal, optionally preceded by a leading zero.

config NETCAT
	bool "netcat"
	default y
	help
	  usage: netcat [-iwlp] {IPADDR PORTNUM|-f FILENAME} [-e COMMAND]

	  -e exec the rest of the command line
	  -i SECONDS delay after each line sent
	  -w SECONDS timeout for connection
	  -f filename use file (ala /dev/ttyS0) instead of network
	  -l listen for incoming connection (twice for persistent connection)
	  -p local port number
	  -s local source address
	  -q SECONDS quit this many seconds after EOF on stdin.

	  Use -l twice with -e for a quick-and-dirty server.

	  Use "stty 115200 -F /dev/ttyS0 && stty raw -echo -ctlecho" with
	  netcat -f to connect to a serial port.

config ONEIT
	bool "oneit"
	default y
	help
	  usage: oneit [-p] command [...]

	  A simple init program that runs a single supplied command line with a
	  controlling tty (so CTRL-C can kill it).

	  -p	Power off instead of rebooting when command exits.

	  The oneit command runs the supplied command line as a child process
	  (because PID 1 has signals blocked), attached to /dev/tty0, in its
	  own session.  Then oneit reaps zombies until the child exits, at
	  which point it reboots (or with -p, powers off) the system.

config PWD
	bool "pwd"
	default y
	help
	  usage: pwd

	  The print working directory command prints the current directory.

config READLINK
	bool "readlink"
	default n
	help
	  usage: readlink

	  Show what a symbolic link points to.

config READLINK_F
	bool "readlink -f"
	default n
	depends on READLINK
	help
	  usage: readlink [-f]

	  -f	Show final location, including normal files and multiple symlinks.

config SHA1SUM
	bool "sleep"
	default y
	help
	  usage: sha1sum [file...]

	  Calculate sha1 hash of files (or stdin).

config SLEEP
	bool "sleep"
	default y
	help
	  usage: sleep SECONDS

	  Wait a decimal integer number of seconds.

config SYNC
	bool "sync"
	default y
	help
	  usage: sync

	  Write pending cached data to disk (synchronize), blocking until done.

config TOUCH
	bool "touch"
	default y
	help
	  usage: touch [-acmrtl] FILE...

	  Change file timestamps, ensure file existance and change file length.

	  -a	Only change the access time.
	  -c	Do not create the file if it doesn't exist.
	  -m	Only change the modification time.
	  -r	Reference file to take timestamps from.
	  -t	Time to change {a,m}time to, in the format MMDDhhmm.

config TOYSH
	bool "sh (toysh)"
	default y
	help
	  usage: sh [-c command] [script]

	  The toybox command shell.  Runs a shell script, or else reads input
	  interactively and responds to it.

	  -c	command line to execute

config TOYSH_TTY
	bool "Interactive shell (terminal control)"
	default n
	depends on TOYSH
	help
	  Add terminal control to toysh.  This is necessary for interactive use,
	  so the shell isn't killed by CTRL-C.

config TOYSH_PROFILE
	bool "Profile support"
	default n
	depends on TOYSH_TTY
	help
	  Read /etc/profile and ~/.profile when running interactively.

	  Also enables the built-in command "source".

config TOYSH_JOBCTL
	bool "Job Control (fg, bg, jobs)"
	default n
	depends on TOYSH_TTY
	help
	  Add job control to toysh.  This lets toysh handle CTRL-Z, and enables
	  the built-in commands "fg", "bg", and "jobs".

	  With pipe support, enable use of "&" to run background processes.

config TOYSH_FLOWCTL
	bool "Flow control (if, while, for, functions)"
	default n
	depends on TOYSH
	help
	  Add flow control to toysh.  This enables the if/then/else/fi,
	  while/do/done, and for/do/done constructs.

	  With pipe support, this enables the ability to define functions
	  using the "function name" or "name()" syntax, plus curly brackets
	  "{ }" to group commands.

config TOYSH_QUOTES
	bool "Smarter argument parsing (quotes)"
	default n
	depends on TOYSH
	help
	  Add support for parsing "" and '' style quotes to the toysh command
	  parser, with lets arguments have spaces in them.


config TOYSH_WILDCARDS
	bool "Wildcards ( ?*{,} )"
	default n
	depends on TOYSH_QUOTES
	help
	  Expand wildcards in argument names, ala "ls -l *.t?z" and
	  "rm subdir/{one,two,three}.txt".

config TOYSH_PROCARGS
	bool "Executable arguments ( `` and $() )"
	default n
	depends on TOYSH_QUOTES
	help
	  Add support for executing arguments contianing $() and ``, using
	  the output of the command as the new argument value(s).

	  (Bash calls this "command substitution".)

config TOYSH_ENVVARS
	bool "Environment variable support"
	default n
	depends on TOYSH_QUOTES
	help
	  Substitute environment variable values for $VARNAME or ${VARNAME},
	  and enable the built-in command "export".

config TOYSH_LOCALS
	bool "Local variables"
	default n
	depends on TOYSH_ENVVARS
	help
	  Support for local variables, fancy prompts ($PS1), the "set" command,
	  and $?.

config TOYSH_ARRAYS
	bool "Array variables"
	default n
	depends on TOYSH_LOCALS
	help
	  Support for ${blah[blah]} style array variables.

config TOYSH_PIPES
	bool "Pipes and redirects ( | > >> < << & && | || () ; )"
	default n
	depends on TOYSH
	help
	  Support multiple commands on the same command line.  This includes
	  | pipes, > >> < redirects, << here documents, || && conditional
	  execution, () subshells, ; sequential execution, and (with job
	  control) & background processes.

config TOYSH_BUILTINS
	bool "Builtin commands"
	default n
	depends on TOYSH
	help
	  Adds the commands exec, fg, bg, help, jobs, pwd, export, source, set,
	  unset, read, alias.

config EXIT
	bool
	default n
	depends on TOYSH
	help
	  usage: exit [status]

	  Exit shell.  If no return value supplied on command line, use value
	  of most recent command, or 0 if none.

config CD
	bool
	default n
	depends on TOYSH
	help
	  usage: cd [path]

	  Change current directory.  With no arguments, go to $HOME.

config CD_P
	bool # "-P support for cd"
	default n
	depends on TOYSH
	help
	  usage: cd [-PL]

	  -P	Physical path: resolve symlinks in path.
	  -L	Cancel previous -P and restore default behavior.

config TRUE
	bool "true"
	default y
	help
	  Return zero.

config TTY
	bool "tty"
	default y
	help
	  Print the filename of the terminal connected to standard input.

	  -s	Don't print anything, only return an exit status.

config WHICH
	bool "which"
	default y
	help
	  usage: which [-a] filename ...

	  Search $PATH for executable files matching filename(s).

	  -a	Show all matches

config YES
	bool "yes"
	default y
	help
	  usage: yes [args...]

	  Repeatedly output line until killed.  If no args, output 'y'.

endmenu