diff options
Diffstat (limited to 'toys')
-rw-r--r-- | toys/Config.in | 561 | ||||
-rw-r--r-- | toys/basename.c | 17 | ||||
-rw-r--r-- | toys/bzcat.c | 18 | ||||
-rw-r--r-- | toys/catv.c | 23 | ||||
-rw-r--r-- | toys/chroot.c | 16 | ||||
-rw-r--r-- | toys/chvt.c | 19 | ||||
-rw-r--r-- | toys/count.c | 16 | ||||
-rw-r--r-- | toys/df.c | 39 | ||||
-rw-r--r-- | toys/dirname.c | 17 | ||||
-rw-r--r-- | toys/dmesg.c | 18 | ||||
-rw-r--r-- | toys/echo.c | 29 | ||||
-rw-r--r-- | toys/false.c | 15 | ||||
-rw-r--r-- | toys/hello.c | 18 | ||||
-rw-r--r-- | toys/help.c | 24 | ||||
-rw-r--r-- | toys/mdev.c | 25 | ||||
-rw-r--r-- | toys/mke2fs.c | 89 | ||||
-rw-r--r-- | toys/mkfifo.c | 18 | ||||
-rw-r--r-- | toys/netcat.c | 31 | ||||
-rw-r--r-- | toys/oneit.c | 23 | ||||
-rw-r--r-- | toys/patch.c | 34 | ||||
-rw-r--r-- | toys/pwd.c | 20 | ||||
-rw-r--r-- | toys/readlink.c | 26 | ||||
-rw-r--r-- | toys/sed.c | 21 | ||||
-rw-r--r-- | toys/sha1sum.c | 15 | ||||
-rw-r--r-- | toys/sleep.c | 16 | ||||
-rw-r--r-- | toys/sync.c | 16 | ||||
-rw-r--r-- | toys/touch.c | 21 | ||||
-rw-r--r-- | toys/toysh.c | 152 | ||||
-rw-r--r-- | toys/true.c | 14 | ||||
-rw-r--r-- | toys/tty.c | 16 | ||||
-rw-r--r-- | toys/which.c | 15 | ||||
-rw-r--r-- | toys/yes.c | 16 |
32 files changed, 711 insertions, 687 deletions
diff --git a/toys/Config.in b/toys/Config.in deleted file mode 100644 index f1083233..00000000 --- a/toys/Config.in +++ /dev/null @@ -1,561 +0,0 @@ -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 CHVT - bool "chvt" - default y - help - usage: chvt N - - Change to virtual terminal number N. (This only works in text mode.) - - Virtual terminals are the Linux VGA text mode displays, ordinarily - switched between via alt-F1, alt-F2, etc. Use ctrl-alt-F1 to switch - from X to a virtual terminal, and alt-F6 (or F7, or F8) to get back. - -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] [-c /dev/tty0] 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. - -c Which console device to use. - - 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 PATCH - bool "patch" - default y - help - usage: patch [-i file] [-p depth] [-Ru] - - Apply a unified diff to one or more files. - - -i Input file (defaults=stdin) - -p number of '/' to strip from start of file paths (default=all) - -R Reverse patch. - -u Ignored (only handles "unified" diffs) - - This version of patch only handles unified diffs, and only modifies - a file when all all hunks to that file apply. Patch prints failed - hunks to stderr, and exits with nonzero status if any hunks fail. - - A file compared against /dev/null is created/deleted as appropriate. - -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 full cannonical path, with no symlinks in it. Returns - nonzero if nothing could currently exist at this location. - -config SED - bool "sed" - default n - help - usage: sed [-irn] {command | [-e command]...} [FILE...] - - Stream EDitor, transforms text by appling commands to each line - of input. - -config SHA1SUM - bool "sha1sum" - 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 [-acm] [-r FILE] [-t MMDDhhmm] [-l bytes] 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. - -l Length to truncate (or sparsely extend) file to. - -m Only change the modification time. - -r Reference file to take timestamps from. - -t Time to change {a,m}time to. - -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 - diff --git a/toys/basename.c b/toys/basename.c index ee5345e4..ffcb5bbe 100644 --- a/toys/basename.c +++ b/toys/basename.c @@ -1,8 +1,19 @@ -/* vi: set sw=4 ts=4: */ -/* basename.c - print non-directory portion of path +/* vi: set sw=4 ts=4: + * + * basename.c - print non-directory portion of path + * + * Copyright 2007 Charlie Shepherd <masterdriverz@gentoo.org> * * See http://www.opengroup.org/onlinepubs/009695399/utilities/basename.html - */ + +config BASENAME + bool "basename" + default y + help + usage: basename path [suffix] + + Print the part of path after the last slash, optionally minus suffix. +*/ #include "toys.h" diff --git a/toys/bzcat.c b/toys/bzcat.c index 984e4186..39b962e3 100644 --- a/toys/bzcat.c +++ b/toys/bzcat.c @@ -1,7 +1,19 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * bzcat.c - decompress stdin to stdout using bunzip2. - */ + * + * Copyright 2007 Rob Landley <rob@landley.net> + * + * Not in SUSv3. + +config BZCAT + bool "bzcat" + default n + help + usage: bzcat [filename...] + + Decompress listed files to stdout. Use stdin if no files listed. +*/ #include "toys.h" diff --git a/toys/catv.c b/toys/catv.c index 806b029a..aa1bfd54 100644 --- a/toys/catv.c +++ b/toys/catv.c @@ -1,12 +1,25 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * cat -v implementation for toybox * * Copyright (C) 2006, 2007 Rob Landley <rob@landley.net> - */ + * + * Not in SUSv3, but see "Cat -v considered harmful" at + * http://cm.bell-labs.com/cm/cs/doc/84/kp.ps.gz + +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. -/* See "Cat -v considered harmful" at - * http://cm.bell-labs.com/cm/cs/doc/84/kp.ps.gz */ + -e Mark each newline with $ + -t Show tabs as ^I + -v Don't use ^x or M-x escapes. +*/ #include "toys.h" diff --git a/toys/chroot.c b/toys/chroot.c index 8d2e9aa2..305d4fb1 100644 --- a/toys/chroot.c +++ b/toys/chroot.c @@ -1,9 +1,19 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * chroot.c - Run command in new root directory. * + * Copyright 2007 Rob Landley <rob@landley.net> + * * Not in SUSv3. - */ + +config CHROOT + bool "chroot" + default y + help + usage: chroot NEWPATH [commandline...] + + Run command within a new root directory. If no command, run /bin/sh. +*/ #include "toys.h" diff --git a/toys/chvt.c b/toys/chvt.c index 46040685..fbee3915 100644 --- a/toys/chvt.c +++ b/toys/chvt.c @@ -1,10 +1,23 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * chvt.c switch virtual terminals * * Copyright (C) 2008 David Anders <danders@amltd.com> * - */ + * Not in SUSv3. + +config CHVT + bool "chvt" + default y + help + usage: chvt N + + Change to virtual terminal number N. (This only works in text mode.) + + Virtual terminals are the Linux VGA text mode displays, ordinarily + switched between via alt-F1, alt-F2, etc. Use ctrl-alt-F1 to switch + from X to a virtual terminal, and alt-F6 (or F7, or F8) to get back. +*/ #include "toys.h" diff --git a/toys/count.c b/toys/count.c index 89f97d05..b4e24332 100644 --- a/toys/count.c +++ b/toys/count.c @@ -1,9 +1,19 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * count.c - Progress indicator from stdin to stdout * + * Copyright 2002 Rob Landley <rob@landley.net> + * * Not in SUSv3. - */ + +config COUNT + bool "count" + default y + help + usage: count + + Copy stdin to stdout, displaying simple progress indicator to stderr. +*/ #include "toys.h" @@ -1,12 +1,39 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * df.c - report free disk space. * - * Implemented roughly according to SUSv3: - * http://www.opengroup.org/onlinepubs/009695399/utilities/df.html + * Copyright 2006 Rob Landley <rob@landley.net> * - * usage: df [-k] [-P|-t] [file...] - */ + * See http://www.opengroup.org/onlinepubs/009695399/utilities/df.html + +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) +*/ #include "toys.h" diff --git a/toys/dirname.c b/toys/dirname.c index 8810bec5..9d1ad430 100644 --- a/toys/dirname.c +++ b/toys/dirname.c @@ -1,8 +1,19 @@ -/* vi: set sw=4 ts=4: */ -/* dirname.c - print directory portion of path, or "." if none. +/* vi: set sw=4 ts=4: + * + * dirname.c - print directory portion of path, or "." if none. + * + * Copyright 2007 Charlie Shephard <masterdriverz@gentoo.org> * * See http://www.opengroup.org/onlinepubs/009695399/utilities/dirname.html - */ + +config DIRNAME + bool "dirname" + default y + help + usage: dirname path + + Print the part of path up to the last slash. +*/ #include "toys.h" #include <libgen.h> diff --git a/toys/dmesg.c b/toys/dmesg.c index 82fa0c39..a16b8d01 100644 --- a/toys/dmesg.c +++ b/toys/dmesg.c @@ -1,11 +1,23 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * dmesg.c - display/control kernel ring buffer. * * Copyright 2006, 2007 Rob Landley <rob@landley.net> * * Not in SUSv3. - */ + +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. +*/ #include "toys.h" #include <sys/klog.h> diff --git a/toys/echo.c b/toys/echo.c index a7e6067e..7c475ca0 100644 --- a/toys/echo.c +++ b/toys/echo.c @@ -1,9 +1,32 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * echo.c - echo supporting -n and -e. * + * Copyright 2007 Rob Landley <rob@landley.net> + * * See http://www.opengroup.org/onlinepubs/009695399/utilities/echo.html - */ + +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 +*/ #include "toys.h" diff --git a/toys/false.c b/toys/false.c index d4345a6d..ac6bf642 100644 --- a/toys/false.c +++ b/toys/false.c @@ -1,9 +1,18 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * false.c - Return nonzero. * + * Copyright 2007 Rob Landley <rob@landley.net> + * * See http://www.opengroup.org/onlinepubs/009695399/utilities/false.html - */ + + +config FALSE + bool "false" + default y + help + Return nonzero. +*/ #include "toys.h" diff --git a/toys/hello.c b/toys/hello.c index 12dd7ac0..278fa0a5 100644 --- a/toys/hello.c +++ b/toys/hello.c @@ -1,9 +1,21 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * hello.c - A hello world program. * + * Copyright 2006 Rob Landley <rob@landley.net> + * * Not in SUSv3. - */ + * See http://www.opengroup.org/onlinepubs/009695399/utilities/ + +config HELLO + bool "hello" + default y + help + A hello world program. You don't need this. + + Mostly used as an example/skeleton file for adding new commands, + occasionally nice to test kernel booting via "init=/bin/hello". +*/ #include "toys.h" diff --git a/toys/help.c b/toys/help.c index 42d06a8c..472ccdea 100644 --- a/toys/help.c +++ b/toys/help.c @@ -1,9 +1,27 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * help.c - Show help for toybox * + * Copyright 2007 Rob Landley <rob@landley.net> + * * Not in SUSv3, but exists as a bash builtin. - */ + +config HELP + bool "help" + default y + help + usage: help [command] + + Show usage information for toybox commands. + +config HELP_LONG + bool "Verbose help text" + default y + depends on HELP + help + Show more than one line of help information per command. +*/ + #include "toys.h" #include "generated/help.h" diff --git a/toys/mdev.c b/toys/mdev.c index bc34c0d5..385e52d2 100644 --- a/toys/mdev.c +++ b/toys/mdev.c @@ -6,7 +6,30 @@ * Copyright 2005 Frank Sorenson <frank@tuxrocks.com> * * Not in SUSv3. - */ + +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. +*/ #include "toys.h" #include "lib/xregcomp.h" diff --git a/toys/mke2fs.c b/toys/mke2fs.c index 32dc2141..405ed94d 100644 --- a/toys/mke2fs.c +++ b/toys/mke2fs.c @@ -5,7 +5,72 @@ * Copyright 2006, 2007 Rob Landley <rob@landley.net> * * Not in SUSv3. - */ + +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 +*/ #include "toys.h" @@ -564,25 +629,3 @@ void mke2fs_main(void) put_zeroes((end-start) * TT.blocksize); } } - -// Scratch pad: - // b - block size (1024, 2048, 4096) - // F - force (run on mounted device or non-block device) - // i - bytes per inode - // N - number of inodes - // m - reserved blocks percentage - // n - Don't write - // q - quiet - - // L - volume label - // M - last mounted path - // o - creator os - - // j - create journal - // J - journal options (size=1024-102400 blocks,device=) - // device=/dev/blah or LABEL=label UUID=uuid - - // E - extended options (stride=stripe-size blocks) - // O - none,dir_index,filetype,has_journal,journal_dev,sparse_super - - diff --git a/toys/mkfifo.c b/toys/mkfifo.c index a959a480..77cb73ee 100644 --- a/toys/mkfifo.c +++ b/toys/mkfifo.c @@ -1,9 +1,21 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * mkfifo.c: Create a named pipe. * * See http://www.opengroup.org/onlinepubs/009695399/utilities/mkfifo.html - */ + +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. This number is in octal, optionally preceded + by a leading zero. +*/ #include "toys.h" diff --git a/toys/netcat.c b/toys/netcat.c index a6d93644..573a76ca 100644 --- a/toys/netcat.c +++ b/toys/netcat.c @@ -1,18 +1,35 @@ -/* vi: set sw=4 ts=4: */ -/* nc: mini-netcat - Forward stdin/stdout to a file or network connection. +/* vi: set sw=4 ts=4: + * + * nc: mini-netcat - Forward stdin/stdout to a file or network connection. * * Copyright 2007 Rob Landley <rob@landley.net> * * Not in SUSv3. - */ + +config NETCAT + bool "netcat" + default n + 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. +*/ #include "toys.h" #include "toynet.h" -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - #define TT toy.netcat static void timeout(int signum) diff --git a/toys/oneit.c b/toys/oneit.c index 8563ecb1..a05e9266 100644 --- a/toys/oneit.c +++ b/toys/oneit.c @@ -1,9 +1,28 @@ -/* oneit.c, tiny one-process init replacement. +/* vi: set sw=4 ts=4: + * + * oneit.c, tiny one-process init replacement. * * Copyright 2005, 2007 by Rob Landley <rob@landley.net>. * * Not in SUSv3. - */ + +config ONEIT + bool "oneit" + default y + help + usage: oneit [-p] [-c /dev/tty0] 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. + -c Which console device to use. + + 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. +*/ #include "toys.h" #include <sys/reboot.h> diff --git a/toys/patch.c b/toys/patch.c index 2f1db0ec..53be2631 100644 --- a/toys/patch.c +++ b/toys/patch.c @@ -1,13 +1,11 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * patch.c - Apply a "universal" diff. * - * SUSv3 at http://www.opengroup.org/onlinepubs/009695399/utilities/patch.html - * but who cares about "ed"? + * Copyright 2007 Rob Landley <rob@landley.net> * - * -u ignored - * -R reverse (remove applied hunks, apply removed hunks) - * -p num remove this many slashes from start of path (default = all) + * see http://www.opengroup.org/onlinepubs/009695399/utilities/patch.html + * (But only does -u, because who still cares about "ed"?) * * TODO: * -b backup @@ -15,7 +13,6 @@ * -N ignore already applied * -d chdir first * -D define wrap #ifdef and #ifndef around changes - * -i patchfile apply patch from filename rather than stdin * -o outfile output here instead of in place * -r rejectfile write rejected hunks to this file * @@ -23,7 +20,26 @@ * -f force (no questions asked) * -F fuzz (number, default 2) * [file] which file to patch - */ + +config PATCH + bool "patch" + default y + help + usage: patch [-i file] [-p depth] [-Ru] + + Apply a unified diff to one or more files. + + -i Input file (defaults=stdin) + -p number of '/' to strip from start of file paths (default=all) + -R Reverse patch. + -u Ignored (only handles "unified" diffs) + + This version of patch only handles unified diffs, and only modifies + a file when all all hunks to that file apply. Patch prints failed + hunks to stderr, and exits with nonzero status if any hunks fail. + + A file compared against /dev/null is created/deleted as appropriate. +*/ #include "toys.h" @@ -1,7 +1,21 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * pwd.c - Print working directory. - */ + * + * Copyright 2006 Rob Landley <rob@landley.net> + * + * See http://www.opengroup.org/onlinepubs/009695399/utilities/echo.html + * + * TODO: add -L -P + +config PWD + bool "pwd" + default y + help + usage: pwd + + The print working directory command prints the current directory. +*/ #include "toys.h" diff --git a/toys/readlink.c b/toys/readlink.c index 79fdea52..89aff10d 100644 --- a/toys/readlink.c +++ b/toys/readlink.c @@ -1,9 +1,29 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * readlink.c - Return string representation of a symbolic link. * + * Copyright 2007 Rob Landley <rob@landley.net> + * * Not in SUSv3. - */ + +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 full cannonical path, with no symlinks in it. Returns + nonzero if nothing could currently exist at this location. +*/ #include "toys.h" @@ -1,15 +1,24 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * sed.c - Stream editor. * + * Copyright 2008 Rob Landley <rob@landley.net> + * * See http://www.opengroup.org/onlinepubs/009695399/utilities/sed.c - */ + +config SED + bool "sed" + default n + help + usage: sed [-irn] {command | [-e command]...} [FILE...] + + Stream EDitor, transforms text by appling commands to each line + of input. +*/ #include "toys.h" #include "lib/xregcomp.h" -#define TT toy.sed - struct sed_command { // Doubly linked list of commands. struct sed_command *next, *prev; @@ -35,6 +44,8 @@ struct sed_command { char command; }; +#define TT toy.sed + void sed_main(void) { struct arg_list *test; diff --git a/toys/sha1sum.c b/toys/sha1sum.c index 1d405f33..2a1b11e9 100644 --- a/toys/sha1sum.c +++ b/toys/sha1sum.c @@ -1,11 +1,22 @@ -/* +/* vi: set sw=4 ts=4: + * + * sha1sum.c - Calculate sha1 cryptographic hash for input. + * * Copyright 2007 Rob Landley <rob@landley.net> * * Based on the public domain SHA-1 in C by Steve Reid <steve@edmweb.com> * from http://www.mirrors.wiretapped.net/security/cryptography/hashes/sha1/ * * Not in SUSv3. - */ + +config SHA1SUM + bool "sha1sum" + default y + help + usage: sha1sum [file...] + + Calculate sha1 hash of files (or stdin). +*/ #include <toys.h> diff --git a/toys/sleep.c b/toys/sleep.c index 0c01a6ea..205adf21 100644 --- a/toys/sleep.c +++ b/toys/sleep.c @@ -1,9 +1,19 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * sleep.c - Wait for a number of seconds. * + * Copyright 2007 Rob Landley <rob@landley.net> + * * See http://www.opengroup.org/onlinepubs/009695399/utilities/sleep.html - */ + +config SLEEP + bool "sleep" + default y + help + usage: sleep SECONDS + + Wait a decimal integer number of seconds. +*/ #include "toys.h" diff --git a/toys/sync.c b/toys/sync.c index 4eed0f53..96c36770 100644 --- a/toys/sync.c +++ b/toys/sync.c @@ -1,9 +1,19 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * sync.c - Write all pending data to disk. * + * Copyright 2007 Rob Landley <rob@landley.net> + * * Not in SUSv3. - */ + +config SYNC + bool "sync" + default y + help + usage: sync + + Write pending cached data to disk (synchronize), blocking until done. +*/ #include "toys.h" diff --git a/toys/touch.c b/toys/touch.c index e01d157e..8c9b7aaa 100644 --- a/toys/touch.c +++ b/toys/touch.c @@ -1,11 +1,26 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * touch.c - Modify a file's timestamps. * * Copyright (C) 2007 Charlie Shepherd <masterdriverz@gentoo.org> * * See http://www.opengroup.org/onlinepubs/009695399/utilities/touch.html - */ + +config TOUCH + bool "touch" + default y + help + usage: touch [-acm] [-r FILE] [-t MMDDhhmm] [-l bytes] 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. + -l Length to truncate (or sparsely extend) file to. + -m Only change the modification time. + -r Reference file to take timestamps from. + -t Time to change {a,m}time to. +*/ #include "toys.h" diff --git a/toys/toysh.c b/toys/toysh.c index 61df13dc..353d2158 100644 --- a/toys/toysh.c +++ b/toys/toysh.c @@ -13,9 +13,155 @@ * http://www.opengroup.org/onlinepubs/009695399/utilities/exit.html * * Things like the bash man page are good to read too. - */ - -// Handle embedded NUL bytes in the command line. + * + * TODO: // Handle embedded NUL bytes in the command line. + +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. +*/ #include "toys.h" diff --git a/toys/true.c b/toys/true.c index 055fb76e..88e95904 100644 --- a/toys/true.c +++ b/toys/true.c @@ -1,9 +1,17 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * true.c - Return zero. * + * Copyright 2007 Rob Landley <rob@landley.net> + * * See http://www.opengroup.org/onlinepubs/009695399/utilities/true.html - */ + +config TRUE + bool "true" + default y + help + Return zero. +*/ #include "toys.h" @@ -1,8 +1,18 @@ -/* vi: set sw=4 ts=4: */ -/* tty.c - print terminal name of stdin +/* vi: set sw=4 ts=4: + * tty.c - print terminal name of stdin + * + * Copyright 2007 Charlie Shepherd <masterdriverz@gentoo.org> * * See http://www.opengroup.org/onlinepubs/009695399/utilities/tty.html - */ + +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. +*/ #include "toys.h" diff --git a/toys/which.c b/toys/which.c index b8c0339a..d7205fde 100644 --- a/toys/which.c +++ b/toys/which.c @@ -1,12 +1,21 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * which.c - Find executable files in $PATH. * * Copyright 2006 Rob landley <rob@landley.net> * * Not in SUSv3. - */ +config WHICH + bool "which" + default y + help + usage: which [-a] filename ... + + Search $PATH for executable files matching filename(s). + + -a Show all matches +*/ #include "toys.h" #define OPT_a 1 @@ -1,9 +1,19 @@ -/* vi: set sw=4 ts=4: */ -/* +/* vi: set sw=4 ts=4: + * * yes.c - Repeatedly output a string. * + * Copyright 2007 Rob Landley <rob@landley.net> + * * Not in SUSv3. - */ + +config YES + bool "yes" + default y + help + usage: yes [args...] + + Repeatedly output line until killed. If no args, output 'y'. +*/ #include "toys.h" |