Convert all coreutils/* applets to "new style" applet definitions
No binary (build failed)
—
(log yok)
| @@ -7,656 +7,12 @@ menu "Coreutils" | |
| INSERT | |
| - | config CAL |
| - | bool "cal" |
| - | default y |
| - | help |
| - | cal is used to display a monthly calendar. |
| - | |
| - | config CATV |
| - | bool "catv" |
| - | default y |
| - | help |
| - | Display nonprinting characters as escape sequences (like some |
| - | implementations' cat -v option). |
| - | |
| - | config CHGRP |
| - | bool "chgrp" |
| - | default y |
| - | help |
| - | chgrp is used to change the group ownership of files. |
| - | |
| - | config CHMOD |
| - | bool "chmod" |
| - | default y |
| - | help |
| - | chmod is used to change the access permission of files. |
| - | |
| - | config CHOWN |
| - | bool "chown" |
| - | default y |
| - | help |
| - | chown is used to change the user and/or group ownership |
| - | of files. |
| - | |
| - | config FEATURE_CHOWN_LONG_OPTIONS |
| - | bool "Enable long options" |
| - | default y |
| - | depends on CHOWN && LONG_OPTS |
| - | help |
| - | Enable use of long options |
| - | |
| - | config CHROOT |
| - | bool "chroot" |
| - | default y |
| - | help |
| - | chroot is used to change the root directory and run a command. |
| - | The default command is `/bin/sh'. |
| - | |
| - | config CKSUM |
| - | bool "cksum" |
| - | default y |
| - | help |
| - | cksum is used to calculate the CRC32 checksum of a file. |
| - | |
| - | config COMM |
| - | bool "comm" |
| - | default y |
| - | help |
| - | comm is used to compare two files line by line and return |
| - | a three-column output. |
| - | |
| - | config CP |
| - | bool "cp" |
| - | default y |
| - | help |
| - | cp is used to copy files and directories. |
| - | |
| - | config FEATURE_CP_LONG_OPTIONS |
| - | bool "Enable long options for cp" |
| - | default y |
| - | depends on CP && LONG_OPTS |
| - | help |
| - | Enable long options for cp. |
| - | Also add support for --parents option. |
| - | |
| - | config CUT |
| - | bool "cut" |
| - | default y |
| - | help |
| - | cut is used to print selected parts of lines from |
| - | each file to stdout. |
| - | |
| - | config DF |
| - | bool "df" |
| - | default y |
| - | help |
| - | df reports the amount of disk space used and available |
| - | on filesystems. |
| - | |
| - | config FEATURE_DF_FANCY |
| - | bool "Enable -a, -i, -B" |
| - | default y |
| - | depends on DF |
| - | help |
| - | This option enables -a, -i and -B. |
| - | |
| - | -a Show all filesystems |
| - | -i Inodes |
| - | -B <SIZE> Blocksize |
| - | |
| - | config DIRNAME |
| - | bool "dirname" |
| - | default y |
| - | help |
| - | dirname is used to strip a non-directory suffix from |
| - | a file name. |
| - | |
| - | config DOS2UNIX |
| - | bool "dos2unix/unix2dos" |
| - | default y |
| - | help |
| - | dos2unix is used to convert a text file from DOS format to |
| - | UNIX format, and vice versa. |
| - | |
| - | config UNIX2DOS |
| - | bool |
| - | default y |
| - | depends on DOS2UNIX |
| - | help |
| - | unix2dos is used to convert a text file from UNIX format to |
| - | DOS format, and vice versa. |
| - | |
| - | config DU |
| - | bool "du (default blocksize of 512 bytes)" |
| - | default y |
| - | help |
| - | du is used to report the amount of disk space used |
| - | for specified files. |
| - | |
| - | config FEATURE_DU_DEFAULT_BLOCKSIZE_1K |
| - | bool "Use a default blocksize of 1024 bytes (1K)" |
| - | default y |
| - | depends on DU |
| - | help |
| - | Use a blocksize of (1K) instead of the default 512b. |
| - | |
| - | config ECHO |
| - | bool "echo (basic SuSv3 version taking no options)" |
| - | default y |
| - | help |
| - | echo is used to print a specified string to stdout. |
| - | |
| - | # this entry also appears in shell/Config.in, next to the echo builtin |
| - | config FEATURE_FANCY_ECHO |
| - | bool "Enable echo options (-n and -e)" |
| - | default y |
| - | depends on ECHO || ASH_BUILTIN_ECHO || HUSH |
| - | help |
| - | This adds options (-n and -e) to echo. |
| - | |
| - | config ENV |
| - | bool "env" |
| - | default y |
| - | help |
| - | env is used to set an environment variable and run |
| - | a command; without options it displays the current |
| - | environment. |
| - | |
| - | config FEATURE_ENV_LONG_OPTIONS |
| - | bool "Enable long options" |
| - | default y |
| - | depends on ENV && LONG_OPTS |
| - | help |
| - | Support long options for the env applet. |
| - | |
| - | config EXPAND |
| - | bool "expand" |
| - | default y |
| - | help |
| - | By default, convert all tabs to spaces. |
| - | |
| - | config FEATURE_EXPAND_LONG_OPTIONS |
| - | bool "Enable long options" |
| - | default y |
| - | depends on EXPAND && LONG_OPTS |
| - | help |
| - | Support long options for the expand applet. |
| - | |
| - | config EXPR |
| - | bool "expr" |
| - | default y |
| - | help |
| - | expr is used to calculate numbers and print the result |
| - | to standard output. |
| - | |
| - | config EXPR_MATH_SUPPORT_64 |
| - | bool "Extend Posix numbers support to 64 bit" |
| - | default y |
| - | depends on EXPR |
| - | help |
| - | Enable 64-bit math support in the expr applet. This will make |
| - | the applet slightly larger, but will allow computation with very |
| - | large numbers. |
| - | |
| - | config FALSE |
| - | bool "false" |
| - | default y |
| - | help |
| - | false returns an exit code of FALSE (1). |
| - | |
| - | config FOLD |
| - | bool "fold" |
| - | default y |
| - | help |
| - | Wrap text to fit a specific width. |
| - | |
| - | config FSYNC |
| - | bool "fsync" |
| - | default y |
| - | help |
| - | fsync is used to flush file-related cached blocks to disk. |
| - | |
| - | config HEAD |
| - | bool "head" |
| - | default y |
| - | help |
| - | head is used to print the first specified number of lines |
| - | from files. |
| - | |
| - | config FEATURE_FANCY_HEAD |
| - | bool "Enable head options (-c, -q, and -v)" |
| - | default y |
| - | depends on HEAD |
| - | help |
| - | This enables the head options (-c, -q, and -v). |
| - | |
| - | config INSTALL |
| - | bool "install" |
| - | default y |
| - | help |
| - | Copy files and set attributes. |
| - | |
| - | config FEATURE_INSTALL_LONG_OPTIONS |
| - | bool "Enable long options" |
| - | default y |
| - | depends on INSTALL && LONG_OPTS |
| - | help |
| - | Support long options for the install applet. |
| - | |
| ####config LENGTH | |
| #### bool "length" | |
| #### default y | |
| #### help | |
| #### length is used to print out the length of a specified string. | |
| - | config LN |
| - | bool "ln" |
| - | default y |
| - | help |
| - | ln is used to create hard or soft links between files. |
| - | |
| - | config LOGNAME |
| - | bool "logname" |
| - | default y |
| - | help |
| - | logname is used to print the current user's login name. |
| - | |
| - | config LS |
| - | bool "ls" |
| - | default y |
| - | help |
| - | ls is used to list the contents of directories. |
| - | |
| - | config FEATURE_LS_FILETYPES |
| - | bool "Enable filetyping options (-p and -F)" |
| - | default y |
| - | depends on LS |
| - | help |
| - | Enable the ls options (-p and -F). |
| - | |
| - | config FEATURE_LS_FOLLOWLINKS |
| - | bool "Enable symlinks dereferencing (-L)" |
| - | default y |
| - | depends on LS |
| - | help |
| - | Enable the ls option (-L). |
| - | |
| - | config FEATURE_LS_RECURSIVE |
| - | bool "Enable recursion (-R)" |
| - | default y |
| - | depends on LS |
| - | help |
| - | Enable the ls option (-R). |
| - | |
| - | config FEATURE_LS_SORTFILES |
| - | bool "Sort the file names" |
| - | default y |
| - | depends on LS |
| - | help |
| - | Allow ls to sort file names alphabetically. |
| - | |
| - | config FEATURE_LS_TIMESTAMPS |
| - | bool "Show file timestamps" |
| - | default y |
| - | depends on LS |
| - | help |
| - | Allow ls to display timestamps for files. |
| - | |
| - | config FEATURE_LS_USERNAME |
| - | bool "Show username/groupnames" |
| - | default y |
| - | depends on LS |
| - | help |
| - | Allow ls to display username/groupname for files. |
| - | |
| - | config FEATURE_LS_COLOR |
| - | bool "Allow use of color to identify file types" |
| - | default y |
| - | depends on LS && LONG_OPTS |
| - | help |
| - | This enables the --color option to ls. |
| - | |
| - | config FEATURE_LS_COLOR_IS_DEFAULT |
| - | bool "Produce colored ls output by default" |
| - | default y |
| - | depends on FEATURE_LS_COLOR |
| - | help |
| - | Saying yes here will turn coloring on by default, |
| - | even if no "--color" option is given to the ls command. |
| - | This is not recommended, since the colors are not |
| - | configurable, and the output may not be legible on |
| - | many output screens. |
| - | |
| - | config MKDIR |
| - | bool "mkdir" |
| - | default y |
| - | help |
| - | mkdir is used to create directories with the specified names. |
| - | |
| - | config FEATURE_MKDIR_LONG_OPTIONS |
| - | bool "Enable long options" |
| - | default y |
| - | depends on MKDIR && LONG_OPTS |
| - | help |
| - | Support long options for the mkdir applet. |
| - | |
| - | config MKFIFO |
| - | bool "mkfifo" |
| - | default y |
| - | help |
| - | mkfifo is used to create FIFOs (named pipes). |
| - | The `mknod' program can also create FIFOs. |
| - | |
| - | config MKNOD |
| - | bool "mknod" |
| - | default y |
| - | help |
| - | mknod is used to create FIFOs or block/character special |
| - | files with the specified names. |
| - | |
| - | config MV |
| - | bool "mv" |
| - | default y |
| - | help |
| - | mv is used to move or rename files or directories. |
| - | |
| - | config FEATURE_MV_LONG_OPTIONS |
| - | bool "Enable long options" |
| - | default y |
| - | depends on MV && LONG_OPTS |
| - | help |
| - | Support long options for the mv applet. |
| - | |
| - | config NICE |
| - | bool "nice" |
| - | default y |
| - | help |
| - | nice runs a program with modified scheduling priority. |
| - | |
| - | config NOHUP |
| - | bool "nohup" |
| - | default y |
| - | help |
| - | run a command immune to hangups, with output to a non-tty. |
| - | |
| - | config OD |
| - | bool "od" |
| - | default y |
| - | help |
| - | od is used to dump binary files in octal and other formats. |
| - | |
| - | config PRINTENV |
| - | bool "printenv" |
| - | default y |
| - | help |
| - | printenv is used to print all or part of environment. |
| - | |
| - | config PRINTF |
| - | bool "printf" |
| - | default y |
| - | help |
| - | printf is used to format and print specified strings. |
| - | It's similar to `echo' except it has more options. |
| - | |
| - | config PWD |
| - | bool "pwd" |
| - | default y |
| - | help |
| - | pwd is used to print the current directory. |
| - | |
| - | config READLINK |
| - | bool "readlink" |
| - | default y |
| - | help |
| - | This program reads a symbolic link and returns the name |
| - | of the file it points to |
| - | |
| - | config FEATURE_READLINK_FOLLOW |
| - | bool "Enable canonicalization by following all symlinks (-f)" |
| - | default y |
| - | depends on READLINK |
| - | help |
| - | Enable the readlink option (-f). |
| - | |
| - | config REALPATH |
| - | bool "realpath" |
| - | default y |
| - | help |
| - | Return the canonicalized absolute pathname. |
| - | This isn't provided by GNU shellutils, but where else does it belong. |
| - | |
| - | config RM |
| - | bool "rm" |
| - | default y |
| - | help |
| - | rm is used to remove files or directories. |
| - | |
| - | config RMDIR |
| - | bool "rmdir" |
| - | default y |
| - | help |
| - | rmdir is used to remove empty directories. |
| - | |
| - | config FEATURE_RMDIR_LONG_OPTIONS |
| - | bool "Enable long options" |
| - | default y |
| - | depends on RMDIR && LONG_OPTS |
| - | help |
| - | Support long options for the rmdir applet, including |
| - | --ignore-fail-on-non-empty for compatibility with GNU rmdir. |
| - | |
| - | config SEQ |
| - | bool "seq" |
| - | default y |
| - | help |
| - | print a sequence of numbers |
| - | |
| - | config SLEEP |
| - | bool "sleep" |
| - | default y |
| - | help |
| - | sleep is used to pause for a specified number of seconds. |
| - | It comes in 3 versions: |
| - | - small: takes one integer parameter |
| - | - fancy: takes multiple integer arguments with suffixes: |
| - | sleep 1d 2h 3m 15s |
| - | - fancy with fractional numbers: |
| - | sleep 2.3s 4.5h sleeps for 16202.3 seconds |
| - | Last one is "the most compatible" with coreutils sleep, |
| - | but it adds around 1k of code. |
| - | |
| - | config FEATURE_FANCY_SLEEP |
| - | bool "Enable multiple arguments and s/m/h/d suffixes" |
| - | default y |
| - | depends on SLEEP |
| - | help |
| - | Allow sleep to pause for specified minutes, hours, and days. |
| - | |
| - | config FEATURE_FLOAT_SLEEP |
| - | bool "Enable fractional arguments" |
| - | default y |
| - | depends on FEATURE_FANCY_SLEEP |
| - | help |
| - | Allow for fractional numeric parameters. |
| - | |
| - | config SORT |
| - | bool "sort" |
| - | default y |
| - | help |
| - | sort is used to sort lines of text in specified files. |
| - | |
| - | config FEATURE_SORT_BIG |
| - | bool "Full SuSv3 compliant sort (support -ktcsbdfiozgM)" |
| - | default y |
| - | depends on SORT |
| - | help |
| - | Without this, sort only supports -r, -u, and an integer version |
| - | of -n. Selecting this adds sort keys, floating point support, and |
| - | more. This adds a little over 3k to a nonstatic build on x86. |
| - | |
| - | The SuSv3 sort standard is available at: |
| - | http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html |
| - | |
| - | config SPLIT |
| - | bool "split" |
| - | default y |
| - | help |
| - | split a file into pieces. |
| - | |
| - | config FEATURE_SPLIT_FANCY |
| - | bool "Fancy extensions" |
| - | default y |
| - | depends on SPLIT |
| - | help |
| - | Add support for features not required by SUSv3. |
| - | Supports additional suffixes 'b' for 512 bytes, |
| - | 'g' for 1GiB for the -b option. |
| - | |
| - | config STTY |
| - | bool "stty" |
| - | default y |
| - | help |
| - | stty is used to change and print terminal line settings. |
| - | |
| - | config SUM |
| - | bool "sum" |
| - | default y |
| - | help |
| - | checksum and count the blocks in a file |
| - | |
| - | config TAC |
| - | bool "tac" |
| - | default y |
| - | help |
| - | tac is used to concatenate and print files in reverse. |
| - | |
| - | config TAIL |
| - | bool "tail" |
| - | default y |
| - | help |
| - | tail is used to print the last specified number of lines |
| - | from files. |
| - | |
| - | config FEATURE_FANCY_TAIL |
| - | bool "Enable extra tail options (-q, -s, -v, and -F)" |
| - | default y |
| - | depends on TAIL |
| - | help |
| - | The options (-q, -s, -v and -F) are provided by GNU tail, but |
| - | are not specific in the SUSv3 standard. |
| - | |
| - | -q Never output headers giving file names |
| - | -s SEC Wait SEC seconds between reads with -f |
| - | -v Always output headers giving file names |
| - | -F Same as -f, but keep retrying |
| - | |
| - | config TEE |
| - | bool "tee" |
| - | default y |
| - | help |
| - | tee is used to read from standard input and write |
| - | to standard output and files. |
| - | |
| - | config FEATURE_TEE_USE_BLOCK_IO |
| - | bool "Enable block I/O (larger/faster) instead of byte I/O" |
| - | default y |
| - | depends on TEE |
| - | help |
| - | Enable this option for a faster tee, at expense of size. |
| - | |
| - | config TRUE |
| - | bool "true" |
| - | default y |
| - | help |
| - | true returns an exit code of TRUE (0). |
| - | |
| - | config TTY |
| - | bool "tty" |
| - | default y |
| - | help |
| - | tty is used to print the name of the current terminal to |
| - | standard output. |
| - | |
| - | config UNAME |
| - | bool "uname" |
| - | default y |
| - | help |
| - | uname is used to print system information. |
| - | |
| - | config UNAME_OSNAME |
| - | string "Operating system name" |
| - | default "GNU/Linux" |
| - | depends on UNAME |
| - | help |
| - | Sets the operating system name reported by uname -o. The |
| - | default is "GNU/Linux". |
| - | |
| - | config UNEXPAND |
| - | bool "unexpand" |
| - | default y |
| - | help |
| - | By default, convert only leading sequences of blanks to tabs. |
| - | |
| - | config FEATURE_UNEXPAND_LONG_OPTIONS |
| - | bool "Enable long options" |
| - | default y |
| - | depends on UNEXPAND && LONG_OPTS |
| - | help |
| - | Support long options for the unexpand applet. |
| - | |
| - | config UNIQ |
| - | bool "uniq" |
| - | default y |
| - | help |
| - | uniq is used to remove duplicate lines from a sorted file. |
| - | |
| - | config USLEEP |
| - | bool "usleep" |
| - | default y |
| - | help |
| - | usleep is used to pause for a specified number of microseconds. |
| - | |
| - | config UUDECODE |
| - | bool "uudecode" |
| - | default y |
| - | help |
| - | uudecode is used to decode a uuencoded file. |
| - | |
| - | config UUENCODE |
| - | bool "uuencode" |
| - | default y |
| - | help |
| - | uuencode is used to uuencode a file. |
| - | |
| - | config WC |
| - | bool "wc" |
| - | default y |
| - | help |
| - | wc is used to print the number of bytes, words, and lines, |
| - | in specified files. |
| - | |
| - | config FEATURE_WC_LARGE |
| - | bool "Support very large files in wc" |
| - | default y |
| - | depends on WC |
| - | help |
| - | Use "unsigned long long" in wc for counter variables. |
| - | |
| - | config WHOAMI |
| - | bool "whoami" |
| - | default y |
| - | help |
| - | whoami is used to print the username of the current |
| - | user id (same as id -un). |
| - | |
| - | config YES |
| - | bool "yes" |
| - | default y |
| - | help |
| - | yes is used to repeatedly output a specific string, or |
| - | the default string `y'. |
| - | |
| comment "Common options" | |
| config FEATURE_VERBOSE | |
| @@ -9,70 +9,15 @@ libs-y += libcoreutils/ | |
| lib-y:= | |
| INSERT | |
| - | lib-$(CONFIG_CAL) += cal.o |
| - | lib-$(CONFIG_CATV) += catv.o |
| - | lib-$(CONFIG_CHGRP) += chgrp.o chown.o |
| - | lib-$(CONFIG_CHMOD) += chmod.o |
| - | lib-$(CONFIG_CHOWN) += chown.o |
| + | |
| + | #lib-$(CONFIG_LENGTH) += length.o |
| + | |
| + | lib-$(CONFIG_MORE) += cat.o # more uses it if stdout isn't a tty |
| + | lib-$(CONFIG_LESS) += cat.o # less too |
| + | lib-$(CONFIG_CRONTAB) += cat.o # crontab -l |
| lib-$(CONFIG_ADDUSER) += chown.o # used by adduser | |
| lib-$(CONFIG_ADDGROUP) += chown.o # used by adduser | |
| - | lib-$(CONFIG_CHROOT) += chroot.o |
| - | lib-$(CONFIG_CKSUM) += cksum.o |
| - | lib-$(CONFIG_COMM) += comm.o |
| - | lib-$(CONFIG_CP) += cp.o |
| - | lib-$(CONFIG_CUT) += cut.o |
| - | lib-$(CONFIG_DD) += dd.o |
| - | lib-$(CONFIG_DF) += df.o |
| - | lib-$(CONFIG_DIRNAME) += dirname.o |
| - | lib-$(CONFIG_DOS2UNIX) += dos2unix.o |
| - | lib-$(CONFIG_DU) += du.o |
| - | lib-$(CONFIG_ECHO) += echo.o |
| - | lib-$(CONFIG_ASH) += echo.o # used by ash |
| - | lib-$(CONFIG_HUSH) += echo.o # used by hush |
| - | lib-$(CONFIG_ENV) += env.o |
| - | lib-$(CONFIG_EXPR) += expr.o |
| - | lib-$(CONFIG_EXPAND) += expand.o |
| - | lib-$(CONFIG_FALSE) += false.o |
| - | lib-$(CONFIG_FOLD) += fold.o |
| - | lib-$(CONFIG_FSYNC) += fsync.o |
| - | lib-$(CONFIG_INSTALL) += install.o |
| - | #lib-$(CONFIG_LENGTH) += length.o |
| - | lib-$(CONFIG_LN) += ln.o |
| - | lib-$(CONFIG_LOGNAME) += logname.o |
| - | lib-$(CONFIG_LS) += ls.o |
| - | lib-$(CONFIG_FTPD) += ls.o |
| - | lib-$(CONFIG_MKDIR) += mkdir.o |
| - | lib-$(CONFIG_MKFIFO) += mkfifo.o |
| - | lib-$(CONFIG_MKNOD) += mknod.o |
| - | lib-$(CONFIG_MV) += mv.o |
| - | lib-$(CONFIG_NICE) += nice.o |
| - | lib-$(CONFIG_NOHUP) += nohup.o |
| - | lib-$(CONFIG_OD) += od.o |
| - | lib-$(CONFIG_PRINTENV) += printenv.o |
| - | lib-$(CONFIG_PRINTF) += printf.o |
| + | lib-$(CONFIG_ASH) += echo.o # used by ash |
| + | lib-$(CONFIG_HUSH) += echo.o # used by hush |
| + | lib-$(CONFIG_FTPD) += ls.o # used by ftpd |
| lib-$(CONFIG_ASH_BUILTIN_PRINTF) += printf.o | |
| - | lib-$(CONFIG_PWD) += pwd.o |
| - | lib-$(CONFIG_READLINK) += readlink.o |
| - | lib-$(CONFIG_REALPATH) += realpath.o |
| - | lib-$(CONFIG_RM) += rm.o |
| - | lib-$(CONFIG_RMDIR) += rmdir.o |
| - | lib-$(CONFIG_SEQ) += seq.o |
| - | lib-$(CONFIG_SLEEP) += sleep.o |
| - | lib-$(CONFIG_SPLIT) += split.o |
| - | lib-$(CONFIG_SORT) += sort.o |
| - | lib-$(CONFIG_STAT) += stat.o |
| - | lib-$(CONFIG_STTY) += stty.o |
| - | lib-$(CONFIG_SUM) += sum.o |
| - | lib-$(CONFIG_TAC) += tac.o |
| - | lib-$(CONFIG_TEE) += tee.o |
| - | lib-$(CONFIG_TRUE) += true.o |
| - | lib-$(CONFIG_TTY) += tty.o |
| - | lib-$(CONFIG_UNAME) += uname.o |
| - | lib-$(CONFIG_UNEXPAND) += expand.o |
| - | lib-$(CONFIG_UNIQ) += uniq.o |
| - | lib-$(CONFIG_USLEEP) += usleep.o |
| - | lib-$(CONFIG_UUDECODE) += uudecode.o |
| - | lib-$(CONFIG_UUENCODE) += uuencode.o |
| - | lib-$(CONFIG_WC) += wc.o |
| - | lib-$(CONFIG_WHOAMI) += whoami.o |
| - | lib-$(CONFIG_YES) += yes.o |
| @@ -14,12 +14,6 @@ | |
| * 2) Don't check for options, as per SUSv3. | |
| * 3) Save some space by using strcmp(). Calling strncmp() here was silly. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/basename.html */ |
| - | |
| - | //kbuild:lib-$(CONFIG_BASENAME) += basename.o |
| - | |
| //config:config BASENAME | |
| //config: bool "basename" | |
| //config: default y | |
| @@ -28,6 +22,13 @@ | |
| //config: leaving just the filename itself. Enable this option if you wish | |
| //config: to enable the 'basename' utility. | |
| + | //applet:IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename)) |
| + | |
| + | //kbuild:lib-$(CONFIG_BASENAME) += basename.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/basename.html */ |
| + | |
| //usage:#define basename_trivial_usage | |
| //usage: "FILE [SUFFIX]" | |
| //usage:#define basename_full_usage "\n\n" | |
| @@ -6,17 +6,25 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | /* Mar 16, 2003 Manuel Novoa III ([email protected]) |
| + | * |
| + | * Major size reduction... over 50% (>1.5k) on i386. |
| + | */ |
| + | //config:config CAL |
| + | //config: bool "cal" |
| + | //config: default y |
| + | //config: help |
| + | //config: cal is used to display a monthly calendar. |
| + | |
| + | //applet:IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CAL) += cal.o |
| /* BB_AUDIT SUSv3 compliant with -j and -y extensions (from util-linux). */ | |
| /* BB_AUDIT BUG: The output of 'cal -j 1752' is incorrect. The upstream | |
| * BB_AUDIT BUG: version in util-linux seems to be broken as well. */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/cal.html */ | |
| - | /* Mar 16, 2003 Manuel Novoa III ([email protected]) |
| - | * |
| - | * Major size reduction... over 50% (>1.5k) on i386. |
| - | */ |
| - | |
| //usage:#define cal_trivial_usage | |
| //usage: "[-jy] [[MONTH] YEAR]" | |
| //usage:#define cal_full_usage "\n\n" | |
| @@ -6,15 +6,6 @@ | |
| * | |
| * Licensed under GPLv2, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/cat.html */ |
| - | |
| - | //kbuild:lib-$(CONFIG_CAT) += cat.o |
| - | //kbuild:lib-$(CONFIG_MORE) += cat.o # more uses it if stdout isn't a tty |
| - | //kbuild:lib-$(CONFIG_LESS) += cat.o # less too |
| - | //kbuild:lib-$(CONFIG_CRONTAB) += cat.o # crontab -l |
| - | |
| //config:config CAT | |
| //config: bool "cat" | |
| //config: default y | |
| @@ -22,6 +13,13 @@ | |
| //config: cat is used to concatenate files and print them to the standard | |
| //config: output. Enable this option if you wish to enable the 'cat' utility. | |
| + | //applet:IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CAT) += cat.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/cat.html */ |
| + | |
| //usage:#define cat_trivial_usage | |
| //usage: "[FILE]..." | |
| //usage:#define cat_full_usage "\n\n" | |
| @@ -10,6 +10,17 @@ | |
| /* See "Cat -v considered harmful" at | |
| * http://cm.bell-labs.com/cm/cs/doc/84/kp.ps.gz */ | |
| + | //config:config CATV |
| + | //config: bool "catv" |
| + | //config: default y |
| + | //config: help |
| + | //config: Display nonprinting characters as escape sequences (like some |
| + | //config: implementations' cat -v option). |
| + | |
| + | //applet:IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CATV) += catv.o |
| + | |
| //usage:#define catv_trivial_usage | |
| //usage: "[-etv] [FILE]..." | |
| //usage:#define catv_full_usage "\n\n" | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config CHGRP |
| + | //config: bool "chgrp" |
| + | //config: default y |
| + | //config: help |
| + | //config: chgrp is used to change the group ownership of files. |
| + | |
| + | //applet:IF_CHGRP(APPLET_NOEXEC(chgrp, chgrp, BB_DIR_BIN, BB_SUID_DROP, chgrp)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CHGRP) += chgrp.o chown.o |
| /* BB_AUDIT SUSv3 defects - none? */ | |
| /* BB_AUDIT GNU defects - unsupported long options. */ | |
| @@ -9,6 +9,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config CHMOD |
| + | //config: bool "chmod" |
| + | //config: default y |
| + | //config: help |
| + | //config: chmod is used to change the access permission of files. |
| + | |
| + | //applet:IF_CHMOD(APPLET_NOEXEC(chmod, chmod, BB_DIR_BIN, BB_SUID_DROP, chmod)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CHMOD) += chmod.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* BB_AUDIT GNU defects - unsupported long options. */ | |
| @@ -6,6 +6,23 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config CHOWN |
| + | //config: bool "chown" |
| + | //config: default y |
| + | //config: help |
| + | //config: chown is used to change the user and/or group ownership |
| + | //config: of files. |
| + | //config: |
| + | //config:config FEATURE_CHOWN_LONG_OPTIONS |
| + | //config: bool "Enable long options" |
| + | //config: default y |
| + | //config: depends on CHOWN && LONG_OPTS |
| + | //config: help |
| + | //config: Enable use of long options |
| + | |
| + | //applet:IF_CHOWN(APPLET_NOEXEC(chown, chown, BB_DIR_BIN, BB_SUID_DROP, chown)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CHOWN) += chown.o |
| /* BB_AUDIT SUSv3 defects - none? */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/chown.html */ | |
| @@ -6,6 +6,16 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config CHROOT |
| + | //config: bool "chroot" |
| + | //config: default y |
| + | //config: help |
| + | //config: chroot is used to change the root directory and run a command. |
| + | //config: The default command is `/bin/sh'. |
| + | |
| + | //applet:IF_CHROOT(APPLET(chroot, BB_DIR_USR_SBIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CHROOT) += chroot.o |
| /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config CKSUM |
| + | //config: bool "cksum" |
| + | //config: default y |
| + | //config: help |
| + | //config: cksum is used to calculate the CRC32 checksum of a file. |
| + | |
| + | //applet:IF_CKSUM(APPLET_NOEXEC(cksum, cksum, BB_DIR_USR_BIN, BB_SUID_DROP, cksum)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CKSUM) += cksum.o |
| //usage:#define cksum_trivial_usage | |
| //usage: "FILES..." | |
| @@ -6,6 +6,16 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config COMM |
| + | //config: bool "comm" |
| + | //config: default y |
| + | //config: help |
| + | //config: comm is used to compare two files line by line and return |
| + | //config: a three-column output. |
| + | |
| + | //applet:IF_COMM(APPLET(comm, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_COMM) += comm.o |
| //usage:#define comm_trivial_usage | |
| //usage: "[-123] FILE1 FILE2" | |
| @@ -7,13 +7,29 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/cp.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Size reduction. | |
| */ | |
| + | //config:config CP |
| + | //config: bool "cp" |
| + | //config: default y |
| + | //config: help |
| + | //config: cp is used to copy files and directories. |
| + | //config: |
| + | //config:config FEATURE_CP_LONG_OPTIONS |
| + | //config: bool "Enable long options for cp" |
| + | //config: default y |
| + | //config: depends on CP && LONG_OPTS |
| + | //config: help |
| + | //config: Enable long options for cp. |
| + | //config: Also add support for --parents option. |
| + | |
| + | //applet:IF_CP(APPLET_NOEXEC(cp, cp, BB_DIR_BIN, BB_SUID_DROP, cp)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CP) += cp.o |
| + | |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/cp.html */ |
| //usage:#define cp_trivial_usage | |
| //usage: "[OPTIONS] SOURCE... DEST" | |
| @@ -8,6 +8,16 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config CUT |
| + | //config: bool "cut" |
| + | //config: default y |
| + | //config: help |
| + | //config: cut is used to print selected parts of lines from |
| + | //config: each file to stdout. |
| + | |
| + | //applet:IF_CUT(APPLET_NOEXEC(cut, cut, BB_DIR_USR_BIN, BB_SUID_DROP, cut)) |
| + | |
| + | //kbuild:lib-$(CONFIG_CUT) += cut.o |
| //usage:#define cut_trivial_usage | |
| //usage: "[OPTIONS] [FILE]..." | |
| @@ -8,8 +8,7 @@ | |
| * bugfixes and cleanup by Bernhard Reutner-Fischer | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| - | */ |
| - | |
| + | */ |
| /* This 'date' command supports only 2 time setting formats, | |
| all the GNU strftime stuff (its in libc, lets use it), | |
| setting time using UTC and displaying it, as well as | |
| @@ -19,10 +18,6 @@ | |
| /* Input parsing code is always bulky - used heavy duty libc stuff as | |
| much as possible, missed out a lot of bounds checking */ | |
| - | //applet:IF_DATE(APPLET(date, BB_DIR_BIN, BB_SUID_DROP)) |
| - | |
| - | //kbuild:lib-$(CONFIG_DATE) += date.o |
| - | |
| //config:config DATE | |
| //config: bool "date" | |
| //config: default y | |
| @@ -63,6 +58,10 @@ | |
| //config: the same format. With it on, 'date DATE' additionally supports | |
| //config: MMDDhhmm[[YY]YY][.ss] format. | |
| + | //applet:IF_DATE(APPLET(date, BB_DIR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_DATE) += date.o |
| + | |
| /* GNU coreutils 6.9 man page: | |
| * date [OPTION]... [+FORMAT] | |
| * date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] | |
| @@ -2,12 +2,10 @@ | |
| /* | |
| * Mini dd implementation for busybox | |
| * | |
| - | * |
| * Copyright (C) 2000,2001 Matt Kraai | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| //config:config DD | |
| //config: bool "dd" | |
| //config: default y | |
| @@ -53,6 +51,10 @@ | |
| //config: help | |
| //config: Enables support for status=noxfer/none option. | |
| + | //applet:IF_DD(APPLET_NOEXEC(dd, dd, BB_DIR_BIN, BB_SUID_DROP, dd)) |
| + | |
| + | //kbuild:lib-$(CONFIG_DD) += dd.o |
| + | |
| //usage:#define dd_trivial_usage | |
| //usage: "[if=FILE] [of=FILE] " IF_FEATURE_DD_IBS_OBS("[ibs=N] [obs=N] ") "[bs=N] [count=N] [skip=N]\n" | |
| //usage: " [seek=N]" IF_FEATURE_DD_IBS_OBS(" [conv=notrunc|noerror|sync|fsync] [iflag=skip_bytes]") | |
| @@ -7,10 +7,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 _NOT_ compliant -- option -t missing. */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/df.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Size reduction. Removed floating point dependency. Added error checking | |
| @@ -21,6 +17,30 @@ | |
| * | |
| * Implement -P and -B; better coreutils compat; cleanup | |
| */ | |
| + | //config:config DF |
| + | //config: bool "df" |
| + | //config: default y |
| + | //config: help |
| + | //config: df reports the amount of disk space used and available |
| + | //config: on filesystems. |
| + | //config: |
| + | //config:config FEATURE_DF_FANCY |
| + | //config: bool "Enable -a, -i, -B" |
| + | //config: default y |
| + | //config: depends on DF |
| + | //config: help |
| + | //config: This option enables -a, -i and -B. |
| + | //config: |
| + | //config: -a Show all filesystems |
| + | //config: -i Inodes |
| + | //config: -B <SIZE> Blocksize |
| + | |
| + | //applet:IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_DF) += df.o |
| + | |
| + | /* BB_AUDIT SUSv3 _NOT_ compliant -- option -t missing. */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/df.html */ |
| //usage:#define df_trivial_usage | |
| //usage: "[-Pk" | |
| @@ -6,6 +6,16 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config DIRNAME |
| + | //config: bool "dirname" |
| + | //config: default y |
| + | //config: help |
| + | //config: dirname is used to strip a non-directory suffix from |
| + | //config: a file name. |
| + | |
| + | //applet:IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname)) |
| + | |
| + | //kbuild:lib-$(CONFIG_DIRNAME) += dirname.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/dirname.html */ | |
| @@ -10,7 +10,27 @@ | |
| * dos2unix filters reading input from stdin and writing output to stdout. | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| - | */ |
| + | */ |
| + | //config:config DOS2UNIX |
| + | //config: bool "dos2unix/unix2dos" |
| + | //config: default y |
| + | //config: help |
| + | //config: dos2unix is used to convert a text file from DOS format to |
| + | //config: UNIX format, and vice versa. |
| + | //config: |
| + | //config:config UNIX2DOS |
| + | //config: bool |
| + | //config: default y |
| + | //config: depends on DOS2UNIX |
| + | //config: help |
| + | //config: unix2dos is used to convert a text file from UNIX format to |
| + | //config: DOS format, and vice versa. |
| + | |
| + | //applet:IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix)) |
| + | //applet:IF_UNIX2DOS(APPLET_NOEXEC(unix2dos, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, unix2dos)) |
| + | |
| + | //kbuild:lib-$(CONFIG_DOS2UNIX) += dos2unix.o |
| + | //kbuild:lib-$(CONFIG_UNIX2DOS) += dos2unix.o |
| //usage:#define dos2unix_trivial_usage | |
| //usage: "[-ud] [FILE]" | |
| @@ -8,10 +8,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant (unless default blocksize set to 1k) */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/du.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Mostly rewritten for SUSv3 compliance and to fix bugs/defects. | |
| @@ -22,6 +18,26 @@ | |
| * 3) Added error checking of output. | |
| * 4) Fixed busybox bug #1284 involving long overflow with human_readable. | |
| */ | |
| + | //config:config DU |
| + | //config: bool "du (default blocksize of 512 bytes)" |
| + | //config: default y |
| + | //config: help |
| + | //config: du is used to report the amount of disk space used |
| + | //config: for specified files. |
| + | //config: |
| + | //config:config FEATURE_DU_DEFAULT_BLOCKSIZE_1K |
| + | //config: bool "Use a default blocksize of 1024 bytes (1K)" |
| + | //config: default y |
| + | //config: depends on DU |
| + | //config: help |
| + | //config: Use a blocksize of (1K) instead of the default 512b. |
| + | |
| + | //applet:IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_DU) += du.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant (unless default blocksize set to 1k) */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/du.html */ |
| //usage:#define du_trivial_usage | |
| //usage: "[-aHLdclsx" IF_FEATURE_HUMAN_READABLE("hm") "k] [FILE]..." | |
| @@ -9,10 +9,6 @@ | |
| * | |
| * Original copyright notice is retained at the end of this file. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant -- unless configured as fancy echo. */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/echo.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Because of behavioral differences, implemented configurable SUSv3 | |
| @@ -22,6 +18,26 @@ | |
| * 2) SUSv3 specifies that octal escapes are of the form \0{#{#{#}}}. | |
| * The previous version did not allow 4-digit octals. | |
| */ | |
| + | //config:config ECHO |
| + | //config: bool "echo (basic SuSv3 version taking no options)" |
| + | //config: default y |
| + | //config: help |
| + | //config: echo is used to print a specified string to stdout. |
| + | //config: |
| + | //config:# this entry also appears in shell/Config.in, next to the echo builtin |
| + | //config:config FEATURE_FANCY_ECHO |
| + | //config: bool "Enable echo options (-n and -e)" |
| + | //config: default y |
| + | //config: depends on ECHO || ASH_BUILTIN_ECHO || HUSH |
| + | //config: help |
| + | //config: This adds options (-n and -e) to echo. |
| + | |
| + | //applet:IF_ECHO(APPLET_NOFORK(echo, echo, BB_DIR_BIN, BB_SUID_DROP, echo)) |
| + | |
| + | //kbuild:lib-$(CONFIG_ECHO) += echo.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant -- unless configured as fancy echo. */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/echo.html */ |
| //usage:#define echo_trivial_usage | |
| //usage: IF_FEATURE_FANCY_ECHO("[-neE] ") "[ARG]..." | |
| @@ -11,16 +11,11 @@ | |
| * | |
| * Modified for BusyBox by Erik Andersen <[email protected]> | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/env.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Fixed bug involving exit return codes if execvp fails. Also added | |
| * output error checking. | |
| */ | |
| - | |
| /* | |
| * Modified by Vladimir Oleynik <[email protected]> (C) 2003 | |
| * - correct "-" option usage | |
| @@ -28,8 +23,27 @@ | |
| * - GNU long option support | |
| * - use xfunc_error_retval | |
| */ | |
| + | //config:config ENV |
| + | //config: bool "env" |
| + | //config: default y |
| + | //config: help |
| + | //config: env is used to set an environment variable and run |
| + | //config: a command; without options it displays the current |
| + | //config: environment. |
| + | //config: |
| + | //config:config FEATURE_ENV_LONG_OPTIONS |
| + | //config: bool "Enable long options" |
| + | //config: default y |
| + | //config: depends on ENV && LONG_OPTS |
| + | //config: help |
| + | //config: Support long options for the env applet. |
| - | /* This is a NOEXEC applet. Be very careful! */ |
| + | //applet:IF_ENV(APPLET_NOEXEC(env, env, BB_DIR_USR_BIN, BB_SUID_DROP, env)) |
| + | |
| + | //kbuild:lib-$(CONFIG_ENV) += env.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/env.html */ |
| //usage:#define env_trivial_usage | |
| //usage: "[-iu] [-] [name=value]... [PROG ARGS]" | |
| @@ -20,6 +20,37 @@ | |
| * | |
| * Caveat: this versions of expand and unexpand don't accept tab lists. | |
| */ | |
| + | //config:config EXPAND |
| + | //config: bool "expand" |
| + | //config: default y |
| + | //config: help |
| + | //config: By default, convert all tabs to spaces. |
| + | //config: |
| + | //config:config FEATURE_EXPAND_LONG_OPTIONS |
| + | //config: bool "Enable long options" |
| + | //config: default y |
| + | //config: depends on EXPAND && LONG_OPTS |
| + | //config: help |
| + | //config: Support long options for the expand applet. |
| + | //config: |
| + | //config:config UNEXPAND |
| + | //config: bool "unexpand" |
| + | //config: default y |
| + | //config: help |
| + | //config: By default, convert only leading sequences of blanks to tabs. |
| + | //config: |
| + | //config:config FEATURE_UNEXPAND_LONG_OPTIONS |
| + | //config: bool "Enable long options" |
| + | //config: default y |
| + | //config: depends on UNEXPAND && LONG_OPTS |
| + | //config: help |
| + | //config: Support long options for the unexpand applet. |
| + | |
| + | //applet:IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | //applet:IF_UNEXPAND(APPLET_ODDNAME(unexpand, expand, BB_DIR_USR_BIN, BB_SUID_DROP, unexpand)) |
| + | |
| + | //kbuild:lib-$(CONFIG_EXPAND) += expand.o |
| + | //kbuild:lib-$(CONFIG_UNEXPAND) += expand.o |
| //usage:#define expand_trivial_usage | |
| //usage: "[-i] [-t N] [FILE]..." | |
| @@ -13,7 +13,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| /* This program evaluates expressions. Each token (operator, operand, | |
| * parenthesis) of the expression must be a separate argument. The | |
| * parser used is a reasonably general one, though any incarnation of | |
| @@ -21,9 +20,27 @@ | |
| * | |
| * No parse tree is needed; a new node is evaluated immediately. | |
| * One function can handle multiple operators all of equal precedence, | |
| - | * provided they all associate ((x op x) op x). */ |
| - | |
| - | /* no getopt needed */ |
| + | * provided they all associate ((x op x) op x). |
| + | */ |
| + | //config:config EXPR |
| + | //config: bool "expr" |
| + | //config: default y |
| + | //config: help |
| + | //config: expr is used to calculate numbers and print the result |
| + | //config: to standard output. |
| + | //config: |
| + | //config:config EXPR_MATH_SUPPORT_64 |
| + | //config: bool "Extend Posix numbers support to 64 bit" |
| + | //config: default y |
| + | //config: depends on EXPR |
| + | //config: help |
| + | //config: Enable 64-bit math support in the expr applet. This will make |
| + | //config: the applet slightly larger, but will allow computation with very |
| + | //config: large numbers. |
| + | |
| + | //applet:IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_EXPR) += expr.o |
| //usage:#define expr_trivial_usage | |
| //usage: "EXPRESSION" | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config FALSE |
| + | //config: bool "false" |
| + | //config: default y |
| + | //config: help |
| + | //config: false returns an exit code of FALSE (1). |
| + | |
| + | //applet:IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false)) |
| + | |
| + | //kbuild:lib-$(CONFIG_FALSE) += false.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* http://www.opengroup.org/onlinepubs/000095399/utilities/false.html */ | |
| @@ -9,6 +9,15 @@ | |
| Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config FOLD |
| + | //config: bool "fold" |
| + | //config: default y |
| + | //config: help |
| + | //config: Wrap text to fit a specific width. |
| + | |
| + | //applet:IF_FOLD(APPLET_NOEXEC(fold, fold, BB_DIR_USR_BIN, BB_SUID_DROP, fold)) |
| + | |
| + | //kbuild:lib-$(CONFIG_FOLD) += fold.o |
| //usage:#define fold_trivial_usage | |
| //usage: "[-bs] [-w WIDTH] [FILE]..." | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config FSYNC |
| + | //config: bool "fsync" |
| + | //config: default y |
| + | //config: help |
| + | //config: fsync is used to flush file-related cached blocks to disk. |
| + | |
| + | //applet:IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync)) |
| + | |
| + | //kbuild:lib-$(CONFIG_FSYNC) += fsync.o |
| //usage:#define fsync_trivial_usage | |
| //usage: "[-d] FILE..." | |
| @@ -6,13 +6,28 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config HEAD |
| + | //config: bool "head" |
| + | //config: default y |
| + | //config: help |
| + | //config: head is used to print the first specified number of lines |
| + | //config: from files. |
| + | //config: |
| + | //config:config FEATURE_FANCY_HEAD |
| + | //config: bool "Enable head options (-c, -q, and -v)" |
| + | //config: default y |
| + | //config: depends on HEAD |
| + | //config: help |
| + | //config: This enables the head options (-c, -q, and -v). |
| + | |
| + | //applet:IF_HEAD(APPLET_NOEXEC(head, head, BB_DIR_USR_BIN, BB_SUID_DROP, head)) |
| + | |
| + | //kbuild:lib-$(CONFIG_HEAD) += head.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* BB_AUDIT GNU compatible -c, -q, and -v options in 'fancy' configuration. */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/head.html */ | |
| - | //kbuild:lib-$(CONFIG_HEAD) += head.o |
| - | |
| //usage:#define head_trivial_usage | |
| //usage: "[OPTIONS] [FILE]..." | |
| //usage:#define head_full_usage "\n\n" | |
| @@ -6,9 +6,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ |
| - | |
| //config:config HOSTID | |
| //config: bool "hostid" | |
| //config: default y | |
| @@ -20,6 +17,8 @@ | |
| //kbuild:lib-$(CONFIG_HOSTID) += hostid.o | |
| + | /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ |
| + | |
| //usage:#define hostid_trivial_usage | |
| //usage: "" | |
| //usage:#define hostid_full_usage "\n\n" | |
| @@ -7,31 +7,30 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant. */ |
| /* Hacked by Tito Ragusa (C) 2004 to handle usernames of whatever | |
| * length and to be more similar to GNU id. | |
| * -Z option support: by Yuichi Nakamura <[email protected]> | |
| * Added -G option Tito Ragusa (C) 2008 for SUSv3. | |
| */ | |
| - | |
| //config:config ID | |
| //config: bool "id" | |
| //config: default y | |
| //config: help | |
| //config: id displays the current user and group ID names. | |
| - | |
| + | //config: |
| //config:config GROUPS | |
| //config: bool "groups" | |
| //config: default y | |
| //config: help | |
| //config: Print the group names associated with current user id. | |
| + | //applet:IF_GROUPS(APPLET_NOEXEC(groups, id, BB_DIR_USR_BIN, BB_SUID_DROP, groups)) |
| + | //applet:IF_ID( APPLET_NOEXEC(id, id, BB_DIR_USR_BIN, BB_SUID_DROP, id )) |
| + | |
| //kbuild:lib-$(CONFIG_GROUPS) += id.o | |
| //kbuild:lib-$(CONFIG_ID) += id.o | |
| - | //applet:IF_GROUPS(APPLET_NOEXEC(groups, id, BB_DIR_USR_BIN, BB_SUID_DROP, groups)) |
| - | //applet:IF_ID( APPLET_NOEXEC(id, id, BB_DIR_USR_BIN, BB_SUID_DROP, id )) |
| + | /* BB_AUDIT SUSv3 compliant. */ |
| //usage:#define id_trivial_usage | |
| //usage: "[OPTIONS] [USER]" | |
| @@ -5,6 +5,22 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config INSTALL |
| + | //config: bool "install" |
| + | //config: default y |
| + | //config: help |
| + | //config: Copy files and set attributes. |
| + | //config: |
| + | //config:config FEATURE_INSTALL_LONG_OPTIONS |
| + | //config: bool "Enable long options" |
| + | //config: default y |
| + | //config: depends on INSTALL && LONG_OPTS |
| + | //config: help |
| + | //config: Support long options for the install applet. |
| + | |
| + | //applet:IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_INSTALL) += install.o |
| /* -v, -b, -c are ignored */ | |
| //usage:#define install_trivial_usage | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config LN |
| + | //config: bool "ln" |
| + | //config: default y |
| + | //config: help |
| + | //config: ln is used to create hard or soft links between files. |
| + | |
| + | //applet:IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, BB_SUID_DROP, ln)) |
| + | |
| + | //kbuild:lib-$(CONFIG_LN) += ln.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* BB_AUDIT GNU options missing: -d, -F, -i, and -v. */ | |
| @@ -6,10 +6,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/logname.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * SUSv3 specifies the string used is that returned from getlogin(). | |
| @@ -19,6 +15,18 @@ | |
| * correct course of action wrt SUSv3 for a failing getlogin() is | |
| * a diagnostic message and an error return. | |
| */ | |
| + | //config:config LOGNAME |
| + | //config: bool "logname" |
| + | //config: default y |
| + | //config: help |
| + | //config: logname is used to print the current user's login name. |
| + | |
| + | //applet:IF_LOGNAME(APPLET_NOFORK(logname, logname, BB_DIR_USR_BIN, BB_SUID_DROP, logname)) |
| + | |
| + | //kbuild:lib-$(CONFIG_LOGNAME) += logname.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/logname.html */ |
| //usage:#define logname_trivial_usage | |
| //usage: "" | |
| @@ -4,7 +4,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| /* [date unknown. Perhaps before year 2000] | |
| * To achieve a small memory footprint, this version of 'ls' doesn't do any | |
| * file sorting, and only has the most essential command line switches | |
| @@ -28,6 +27,75 @@ | |
| * [2009-03] | |
| * ls sorts listing now, and supports almost all options. | |
| */ | |
| + | //config:config LS |
| + | //config: bool "ls" |
| + | //config: default y |
| + | //config: help |
| + | //config: ls is used to list the contents of directories. |
| + | //config: |
| + | //config:config FEATURE_LS_FILETYPES |
| + | //config: bool "Enable filetyping options (-p and -F)" |
| + | //config: default y |
| + | //config: depends on LS |
| + | //config: help |
| + | //config: Enable the ls options (-p and -F). |
| + | //config: |
| + | //config:config FEATURE_LS_FOLLOWLINKS |
| + | //config: bool "Enable symlinks dereferencing (-L)" |
| + | //config: default y |
| + | //config: depends on LS |
| + | //config: help |
| + | //config: Enable the ls option (-L). |
| + | //config: |
| + | //config:config FEATURE_LS_RECURSIVE |
| + | //config: bool "Enable recursion (-R)" |
| + | //config: default y |
| + | //config: depends on LS |
| + | //config: help |
| + | //config: Enable the ls option (-R). |
| + | //config: |
| + | //config:config FEATURE_LS_SORTFILES |
| + | //config: bool "Sort the file names" |
| + | //config: default y |
| + | //config: depends on LS |
| + | //config: help |
| + | //config: Allow ls to sort file names alphabetically. |
| + | //config: |
| + | //config:config FEATURE_LS_TIMESTAMPS |
| + | //config: bool "Show file timestamps" |
| + | //config: default y |
| + | //config: depends on LS |
| + | //config: help |
| + | //config: Allow ls to display timestamps for files. |
| + | //config: |
| + | //config:config FEATURE_LS_USERNAME |
| + | //config: bool "Show username/groupnames" |
| + | //config: default y |
| + | //config: depends on LS |
| + | //config: help |
| + | //config: Allow ls to display username/groupname for files. |
| + | //config: |
| + | //config:config FEATURE_LS_COLOR |
| + | //config: bool "Allow use of color to identify file types" |
| + | //config: default y |
| + | //config: depends on LS && LONG_OPTS |
| + | //config: help |
| + | //config: This enables the --color option to ls. |
| + | //config: |
| + | //config:config FEATURE_LS_COLOR_IS_DEFAULT |
| + | //config: bool "Produce colored ls output by default" |
| + | //config: default y |
| + | //config: depends on FEATURE_LS_COLOR |
| + | //config: help |
| + | //config: Saying yes here will turn coloring on by default, |
| + | //config: even if no "--color" option is given to the ls command. |
| + | //config: This is not recommended, since the colors are not |
| + | //config: configurable, and the output may not be legible on |
| + | //config: many output screens. |
| + | |
| + | //applet:IF_LS(APPLET_NOEXEC(ls, ls, BB_DIR_BIN, BB_SUID_DROP, ls)) |
| + | |
| + | //kbuild:lib-$(CONFIG_LS) += ls.o |
| //usage:#define ls_trivial_usage | |
| //usage: "[-1AaCxd" | |
| @@ -6,18 +6,32 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/mkdir.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Fixed broken permission setting when -p was used; especially in | |
| * conjunction with -m. | |
| */ | |
| - | |
| /* Nov 28, 2006 Yoshinori Sato <[email protected]>: Add SELinux Support. | |
| */ | |
| + | //config:config MKDIR |
| + | //config: bool "mkdir" |
| + | //config: default y |
| + | //config: help |
| + | //config: mkdir is used to create directories with the specified names. |
| + | //config: |
| + | //config:config FEATURE_MKDIR_LONG_OPTIONS |
| + | //config: bool "Enable long options" |
| + | //config: default y |
| + | //config: depends on MKDIR && LONG_OPTS |
| + | //config: help |
| + | //config: Support long options for the mkdir applet. |
| + | |
| + | //applet:IF_MKDIR(APPLET_NOFORK(mkdir, mkdir, BB_DIR_BIN, BB_SUID_DROP, mkdir)) |
| + | |
| + | //kbuild:lib-$(CONFIG_MKDIR) += mkdir.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/mkdir.html */ |
| //usage:#define mkdir_trivial_usage | |
| //usage: "[OPTIONS] DIRECTORY..." | |
| @@ -6,6 +6,16 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config MKFIFO |
| + | //config: bool "mkfifo" |
| + | //config: default y |
| + | //config: help |
| + | //config: mkfifo is used to create FIFOs (named pipes). |
| + | //config: The 'mknod' program can also create FIFOs. |
| + | |
| + | //applet:IF_MKFIFO(APPLET_NOEXEC(mkfifo, mkfifo, BB_DIR_USR_BIN, BB_SUID_DROP, mkfifo)) |
| + | |
| + | //kbuild:lib-$(CONFIG_MKFIFO) += mkfifo.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/mkfifo.html */ | |
| @@ -6,6 +6,16 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config MKNOD |
| + | //config: bool "mknod" |
| + | //config: default y |
| + | //config: help |
| + | //config: mknod is used to create FIFOs or block/character special |
| + | //config: files with the specified names. |
| + | |
| + | //applet:IF_MKNOD(APPLET_NOEXEC(mknod, mknod, BB_DIR_BIN, BB_SUID_DROP, mknod)) |
| + | |
| + | //kbuild:lib-$(CONFIG_MKNOD) += mknod.o |
| /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ | |
| @@ -7,14 +7,26 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Size reduction and improved error checking. | |
| */ | |
| - | |
| - | #include "libbb.h" |
| - | #include "libcoreutils/coreutils.h" |
| + | //config:config MV |
| + | //config: bool "mv" |
| + | //config: default y |
| + | //config: help |
| + | //config: mv is used to move or rename files or directories. |
| + | //config: |
| + | //config:config FEATURE_MV_LONG_OPTIONS |
| + | //config: bool "Enable long options" |
| + | //config: default y |
| + | //config: depends on MV && LONG_OPTS |
| + | //config: help |
| + | //config: Support long options for the mv applet. |
| + | |
| + | //applet:IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_MV) += mv.o |
| //usage:#define mv_trivial_usage | |
| //usage: "[-fin] SOURCE DEST\n" | |
| @@ -28,6 +40,9 @@ | |
| //usage:#define mv_example_usage | |
| //usage: "$ mv /tmp/foo /bin/bar\n" | |
| + | #include "libbb.h" |
| + | #include "libcoreutils/coreutils.h" |
| + | |
| #if ENABLE_FEATURE_MV_LONG_OPTIONS | |
| static const char mv_longopts[] ALIGN1 = | |
| "interactive\0" No_argument "i" | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config NICE |
| + | //config: bool "nice" |
| + | //config: default y |
| + | //config: help |
| + | //config: nice runs a program with modified scheduling priority. |
| + | |
| + | //applet:IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_NICE) += nice.o |
| //usage:#define nice_trivial_usage | |
| //usage: "[-n ADJUST] [PROG ARGS]" | |
| @@ -9,6 +9,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config NOHUP |
| + | //config: bool "nohup" |
| + | //config: default y |
| + | //config: help |
| + | //config: run a command immune to hangups, with output to a non-tty. |
| + | |
| + | //applet:IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_NOHUP) += nohup.o |
| //usage:#define nohup_trivial_usage | |
| //usage: "PROG ARGS" | |
| @@ -10,6 +10,15 @@ | |
| * | |
| * Original copyright notice is retained at the end of this file. | |
| */ | |
| + | //config:config OD |
| + | //config: bool "od" |
| + | //config: default y |
| + | //config: help |
| + | //config: od is used to dump binary files in octal and other formats. |
| + | |
| + | //applet:IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_OD) += od.o |
| //usage:#if !ENABLE_DESKTOP | |
| //usage:#define od_trivial_usage | |
| @@ -7,6 +7,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config PRINTENV |
| + | //config: bool "printenv" |
| + | //config: default y |
| + | //config: help |
| + | //config: printenv is used to print all or part of environment. |
| + | |
| + | //applet:IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv)) |
| + | |
| + | //kbuild:lib-$(CONFIG_PRINTENV) += printenv.o |
| //usage:#define printenv_trivial_usage | |
| //usage: "[VARIABLE]..." | |
| @@ -38,6 +38,17 @@ | |
| /* 19990508 Busy Boxed! Dave Cinege */ | |
| + | //config:config PRINTF |
| + | //config: bool "printf" |
| + | //config: default y |
| + | //config: help |
| + | //config: printf is used to format and print specified strings. |
| + | //config: It's similar to `echo' except it has more options. |
| + | |
| + | //applet:IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf)) |
| + | |
| + | //kbuild:lib-$(CONFIG_PRINTF) += printf.o |
| + | |
| //usage:#define printf_trivial_usage | |
| //usage: "FORMAT [ARG]..." | |
| //usage:#define printf_full_usage "\n\n" | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config PWD |
| + | //config: bool "pwd" |
| + | //config: default y |
| + | //config: help |
| + | //config: pwd is used to print the current directory. |
| + | |
| + | //applet:IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd)) |
| + | |
| + | //kbuild:lib-$(CONFIG_PWD) += pwd.o |
| //usage:#define pwd_trivial_usage | |
| //usage: "" | |
| @@ -18,8 +27,6 @@ | |
| #include "libbb.h" | |
| - | /* This is a NOFORK applet. Be very careful! */ |
| - | |
| static int logical_getcwd(void) | |
| { | |
| struct stat st1; | |
| @@ -6,6 +6,23 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config READLINK |
| + | //config: bool "readlink" |
| + | //config: default y |
| + | //config: help |
| + | //config: This program reads a symbolic link and returns the name |
| + | //config: of the file it points to |
| + | //config: |
| + | //config:config FEATURE_READLINK_FOLLOW |
| + | //config: bool "Enable canonicalization by following all symlinks (-f)" |
| + | //config: default y |
| + | //config: depends on READLINK |
| + | //config: help |
| + | //config: Enable the readlink option (-f). |
| + | |
| + | //applet:IF_READLINK(APPLET(readlink, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_READLINK) += readlink.o |
| //usage:#define readlink_trivial_usage | |
| //usage: IF_FEATURE_READLINK_FOLLOW("[-fnv] ") "FILE" | |
| @@ -1,7 +1,4 @@ | |
| /* vi: set sw=4 ts=4: */ | |
| - | |
| - | /* BB_AUDIT SUSv3 N/A -- Apparently a busybox extension. */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Now does proper error checking on output and returns a failure exit code | |
| @@ -9,6 +6,18 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config REALPATH |
| + | //config: bool "realpath" |
| + | //config: default y |
| + | //config: help |
| + | //config: Return the canonicalized absolute pathname. |
| + | //config: This isn't provided by GNU shellutils, but where else does it belong. |
| + | |
| + | //applet:IF_REALPATH(APPLET(realpath, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_REALPATH) += realpath.o |
| + | |
| + | /* BB_AUDIT SUSv3 N/A -- Apparently a busybox extension. */ |
| //usage:#define realpath_trivial_usage | |
| //usage: "FILE..." | |
| @@ -6,14 +6,22 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/rm.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Size reduction. | |
| */ | |
| + | //config:config RM |
| + | //config: bool "rm" |
| + | //config: default y |
| + | //config: help |
| + | //config: rm is used to remove files or directories. |
| + | |
| + | //applet:IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm)) |
| + | |
| + | //kbuild:lib-$(CONFIG_RM) += rm.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/rm.html */ |
| //usage:#define rm_trivial_usage | |
| //usage: "[-irf] FILE..." | |
| @@ -6,6 +6,23 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config RMDIR |
| + | //config: bool "rmdir" |
| + | //config: default y |
| + | //config: help |
| + | //config: rmdir is used to remove empty directories. |
| + | //config: |
| + | //config:config FEATURE_RMDIR_LONG_OPTIONS |
| + | //config: bool "Enable long options" |
| + | //config: default y |
| + | //config: depends on RMDIR && LONG_OPTS |
| + | //config: help |
| + | //config: Support long options for the rmdir applet, including |
| + | //config: --ignore-fail-on-non-empty for compatibility with GNU rmdir. |
| + | |
| + | //applet:IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir)) |
| + | |
| + | //kbuild:lib-$(CONFIG_RMDIR) += rmdir.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/rmdir.html */ | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config SEQ |
| + | //config: bool "seq" |
| + | //config: default y |
| + | //config: help |
| + | //config: print a sequence of numbers |
| + | |
| + | //applet:IF_SEQ(APPLET_NOFORK(seq, seq, BB_DIR_USR_BIN, BB_SUID_DROP, seq)) |
| + | |
| + | //kbuild:lib-$(CONFIG_SEQ) += seq.o |
| //usage:#define seq_trivial_usage | |
| //usage: "[-w] [-s SEP] [FIRST [INC]] LAST" | |
| @@ -6,17 +6,48 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant */ |
| - | /* BB_AUDIT GNU issues -- fancy version matches except args must be ints. */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/sleep.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Rewritten to do proper arg and error checking. | |
| * Also, added a 'fancy' configuration to accept multiple args with | |
| * time suffixes for seconds, minutes, hours, and days. | |
| */ | |
| + | //config:config SLEEP |
| + | //config: bool "sleep" |
| + | //config: default y |
| + | //config: help |
| + | //config: sleep is used to pause for a specified number of seconds. |
| + | //config: It comes in 3 versions: |
| + | //config: - small: takes one integer parameter |
| + | //config: - fancy: takes multiple integer arguments with suffixes: |
| + | //config: sleep 1d 2h 3m 15s |
| + | //config: - fancy with fractional numbers: |
| + | //config: sleep 2.3s 4.5h sleeps for 16202.3 seconds |
| + | //config: Last one is "the most compatible" with coreutils sleep, |
| + | //config: but it adds around 1k of code. |
| + | //config: |
| + | //config:config FEATURE_FANCY_SLEEP |
| + | //config: bool "Enable multiple arguments and s/m/h/d suffixes" |
| + | //config: default y |
| + | //config: depends on SLEEP |
| + | //config: help |
| + | //config: Allow sleep to pause for specified minutes, hours, and days. |
| + | //config: |
| + | //config:config FEATURE_FLOAT_SLEEP |
| + | //config: bool "Enable fractional arguments" |
| + | //config: default y |
| + | //config: depends on FEATURE_FANCY_SLEEP |
| + | //config: help |
| + | //config: Allow for fractional numeric parameters. |
| + | |
| + | /* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells */ |
| + | //applet:IF_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_SLEEP) += sleep.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant */ |
| + | /* BB_AUDIT GNU issues -- fancy version matches except args must be ints. */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/sleep.html */ |
| //usage:#define sleep_trivial_usage | |
| //usage: IF_FEATURE_FANCY_SLEEP("[") "N" IF_FEATURE_FANCY_SLEEP("]...") | |
| @@ -35,9 +66,6 @@ | |
| #include "libbb.h" | |
| - | /* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells */ |
| - | |
| - | |
| #if ENABLE_FEATURE_FANCY_SLEEP || ENABLE_FEATURE_FLOAT_SLEEP | |
| static const struct suffix_mult sfx[] = { | |
| { "s", 1 }, | |
| @@ -11,6 +11,27 @@ | |
| * See SuS3 sort standard at: | |
| * http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html | |
| */ | |
| + | //config:config SORT |
| + | //config: bool "sort" |
| + | //config: default y |
| + | //config: help |
| + | //config: sort is used to sort lines of text in specified files. |
| + | //config: |
| + | //config:config FEATURE_SORT_BIG |
| + | //config: bool "Full SuSv3 compliant sort (support -ktcsbdfiozgM)" |
| + | //config: default y |
| + | //config: depends on SORT |
| + | //config: help |
| + | //config: Without this, sort only supports -r, -u, and an integer version |
| + | //config: of -n. Selecting this adds sort keys, floating point support, and |
| + | //config: more. This adds a little over 3k to a nonstatic build on x86. |
| + | //config: |
| + | //config: The SuSv3 sort standard is available at: |
| + | //config: http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html |
| + | |
| + | //applet:IF_SORT(APPLET_NOEXEC(sort, sort, BB_DIR_USR_BIN, BB_SUID_DROP, sort)) |
| + | |
| + | //kbuild:lib-$(CONFIG_SORT) += sort.o |
| //usage:#define sort_trivial_usage | |
| //usage: "[-nru" | |
| @@ -5,6 +5,25 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config SPLIT |
| + | //config: bool "split" |
| + | //config: default y |
| + | //config: help |
| + | //config: split a file into pieces. |
| + | //config: |
| + | //config:config FEATURE_SPLIT_FANCY |
| + | //config: bool "Fancy extensions" |
| + | //config: default y |
| + | //config: depends on SPLIT |
| + | //config: help |
| + | //config: Add support for features not required by SUSv3. |
| + | //config: Supports additional suffixes 'b' for 512 bytes, |
| + | //config: 'g' for 1GiB for the -b option. |
| + | |
| + | //applet:IF_SPLIT(APPLET(split, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_SPLIT) += split.o |
| + | |
| /* BB_AUDIT: SUSv3 compliant | |
| * SUSv3 requirements: | |
| * http://www.opengroup.org/onlinepubs/009695399/utilities/split.html | |
| @@ -36,6 +36,9 @@ | |
| //config: Without this, stat will not support the '-f' option to display | |
| //config: information about filesystem status. | |
| + | //applet:IF_STAT(APPLET(stat, BB_DIR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_STAT) += stat.o |
| //usage:#define stat_trivial_usage | |
| //usage: "[OPTIONS] FILE..." | |
| @@ -18,8 +18,16 @@ | |
| David MacKenzie <[email protected]> | |
| Special for busybox ported by Vladimir Oleynik <[email protected]> 2001 | |
| + | */ |
| + | //config:config STTY |
| + | //config: bool "stty" |
| + | //config: default y |
| + | //config: help |
| + | //config: stty is used to change and print terminal line settings. |
| + | |
| + | //applet:IF_STTY(APPLET(stty, BB_DIR_BIN, BB_SUID_DROP)) |
| - | */ |
| + | //kbuild:lib-$(CONFIG_STTY) += stty.o |
| //usage:#define stty_trivial_usage | |
| //usage: "[-a|g] [-F DEVICE] [SETTING]..." | |
| @@ -12,6 +12,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config SUM |
| + | //config: bool "sum" |
| + | //config: default y |
| + | //config: help |
| + | //config: checksum and count the blocks in a file |
| + | |
| + | //applet:IF_SUM(APPLET(sum, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_SUM) += sum.o |
| //usage:#define sum_trivial_usage | |
| //usage: "[-rs] [FILE]..." | |
| @@ -7,8 +7,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ |
| //config:config SYNC | |
| //config: bool "sync" | |
| //config: default y | |
| @@ -22,9 +20,12 @@ | |
| //config: sync -d FILE... executes fdatasync() on each FILE. | |
| //config: sync -f FILE... executes syncfs() on each FILE. | |
| - | //kbuild:lib-$(CONFIG_SYNC) += sync.o |
| //applet:IF_SYNC(APPLET_NOFORK(sync, sync, BB_DIR_BIN, BB_SUID_DROP, sync)) | |
| + | //kbuild:lib-$(CONFIG_SYNC) += sync.o |
| + | |
| + | /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ |
| + | |
| //usage:#define sync_trivial_usage | |
| //usage: ""IF_FEATURE_SYNC_FANCY("[-df] [FILE]...") | |
| //usage:#define sync_full_usage "\n\n" | |
| @@ -1,20 +1,26 @@ | |
| /* vi: set sw=4 ts=4: */ | |
| /* | |
| * tac implementation for busybox | |
| + | * tac - concatenate and print files in reverse |
| * | |
| * Copyright (C) 2003 Yang Xiaopeng <yxp at hanwang.com.cn> | |
| * Copyright (C) 2007 Natanael Copa <[email protected]> | |
| * Copyright (C) 2007 Tito Ragusa <[email protected]> | |
| * | |
| * Licensed under GPLv2, see file LICENSE in this source tree. | |
| - | * |
| */ | |
| - | |
| - | /* tac - concatenate and print files in reverse */ |
| - | |
| /* Based on Yang Xiaopeng's (yxp at hanwang.com.cn) patch | |
| * http://www.uclibc.org/lists/busybox/2003-July/008813.html | |
| */ | |
| + | //config:config TAC |
| + | //config: bool "tac" |
| + | //config: default y |
| + | //config: help |
| + | //config: tac is used to concatenate and print files in reverse. |
| + | |
| + | //applet:IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac)) |
| + | |
| + | //kbuild:lib-$(CONFIG_TAC) += tac.o |
| //usage:#define tac_trivial_usage | |
| //usage: "[FILE]..." | |
| @@ -6,11 +6,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant (need fancy for -c) */ |
| - | /* BB_AUDIT GNU compatible -c, -q, and -v options in 'fancy' configuration. */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/tail.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Pretty much rewritten to fix numerous bugs and reduce realloc() calls. | |
| @@ -23,9 +18,34 @@ | |
| * 6) no check for lseek error | |
| * 7) lseek attempted when count==0 even if arg was +0 (from top) | |
| */ | |
| + | //config:config TAIL |
| + | //config: bool "tail" |
| + | //config: default y |
| + | //config: help |
| + | //config: tail is used to print the last specified number of lines |
| + | //config: from files. |
| + | //config: |
| + | //config:config FEATURE_FANCY_TAIL |
| + | //config: bool "Enable extra tail options (-q, -s, -v, and -F)" |
| + | //config: default y |
| + | //config: depends on TAIL |
| + | //config: help |
| + | //config: The options (-q, -s, -v and -F) are provided by GNU tail, but |
| + | //config: are not specific in the SUSv3 standard. |
| + | //config: |
| + | //config: -q Never output headers giving file names |
| + | //config: -s SEC Wait SEC seconds between reads with -f |
| + | //config: -v Always output headers giving file names |
| + | //config: -F Same as -f, but keep retrying |
| + | |
| + | //applet:IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| //kbuild:lib-$(CONFIG_TAIL) += tail.o | |
| + | /* BB_AUDIT SUSv3 compliant (need fancy for -c) */ |
| + | /* BB_AUDIT GNU compatible -c, -q, and -v options in 'fancy' configuration. */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/tail.html */ |
| + | |
| //usage:#define tail_trivial_usage | |
| //usage: "[OPTIONS] [FILE]..." | |
| //usage:#define tail_full_usage "\n\n" | |
| @@ -6,6 +6,23 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config TEE |
| + | //config: bool "tee" |
| + | //config: default y |
| + | //config: help |
| + | //config: tee is used to read from standard input and write |
| + | //config: to standard output and files. |
| + | //config: |
| + | //config:config FEATURE_TEE_USE_BLOCK_IO |
| + | //config: bool "Enable block I/O (larger/faster) instead of byte I/O" |
| + | //config: default y |
| + | //config: depends on TEE |
| + | //config: help |
| + | //config: Enable this option for a faster tee, at expense of size. |
| + | |
| + | //applet:IF_TEE(APPLET(tee, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_TEE) += tee.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/tee.html */ | |
| @@ -19,11 +19,6 @@ | |
| * Original copyright notice states: | |
| * "This program is in the Public Domain." | |
| */ | |
| - | |
| - | //kbuild:lib-$(CONFIG_TEST) += test.o test_ptr_hack.o |
| - | //kbuild:lib-$(CONFIG_ASH) += test.o test_ptr_hack.o |
| - | //kbuild:lib-$(CONFIG_HUSH) += test.o test_ptr_hack.o |
| - | |
| //config:config TEST | |
| //config: bool "test" | |
| //config: default y | |
| @@ -39,6 +34,14 @@ | |
| //config: help | |
| //config: Enable 64-bit support in test. | |
| + | //applet:IF_TEST(APPLET_NOFORK([, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) |
| + | //applet:IF_TEST(APPLET_NOFORK([[, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) |
| + | //applet:IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) |
| + | |
| + | //kbuild:lib-$(CONFIG_TEST) += test.o test_ptr_hack.o |
| + | //kbuild:lib-$(CONFIG_ASH) += test.o test_ptr_hack.o |
| + | //kbuild:lib-$(CONFIG_HUSH) += test.o test_ptr_hack.o |
| + | |
| /* "test --help" is special-cased to ignore --help */ | |
| //usage:#define test_trivial_usage NOUSAGE_STR | |
| //usage:#define test_full_usage "" | |
| @@ -6,19 +6,12 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 _NOT_ compliant -- options -a, -m not supported. */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/touch.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Previous version called open() and then utime(). While this will be | |
| * be necessary to implement -r and -t, it currently only makes things bigger. | |
| * Also, exiting on a failure was a bug. All args should be processed. | |
| */ | |
| - | |
| - | #include "libbb.h" |
| - | |
| //config:config TOUCH | |
| //config: bool "touch" | |
| //config: default y | |
| @@ -45,6 +38,9 @@ | |
| //kbuild:lib-$(CONFIG_TOUCH) += touch.o | |
| + | /* BB_AUDIT SUSv3 _NOT_ compliant -- options -a, -m not supported. */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/touch.html */ |
| + | |
| //usage:#define touch_trivial_usage | |
| //usage: "[-c]" IF_FEATURE_TOUCH_SUSV3(" [-d DATE] [-t DATE] [-r FILE]") " FILE..." | |
| //usage:#define touch_full_usage "\n\n" | |
| @@ -66,8 +62,6 @@ | |
| //usage: "$ ls -l /tmp/foo\n" | |
| //usage: "-rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo\n" | |
| - | /* This is a NOFORK applet. Be very careful! */ |
| - | |
| /* coreutils implements: | |
| * -a change only the access time | |
| * -c, --no-create | |
| @@ -85,6 +79,8 @@ | |
| * change the specified time: WORD is access, atime, or use | |
| */ | |
| + | #include "libbb.h" |
| + | |
| int touch_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |
| int touch_main(int argc UNUSED_PARAM, char **argv) | |
| { | |
| @@ -18,9 +18,6 @@ | |
| /* http://www.opengroup.org/onlinepubs/009695399/utilities/tr.html | |
| * TODO: graph, print | |
| */ | |
| - | |
| - | //kbuild:lib-$(CONFIG_TR) += tr.o |
| - | |
| //config:config TR | |
| //config: bool "tr" | |
| //config: default y | |
| @@ -47,6 +44,10 @@ | |
| //config: useful for cases when no other way of expressing a character | |
| //config: is possible. | |
| + | //applet:IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_TR) += tr.o |
| + | |
| //usage:#define tr_trivial_usage | |
| //usage: "[-cds] STRING1 [STRING2]" | |
| //usage:#define tr_full_usage "\n\n" | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config TRUE |
| + | //config: bool "true" |
| + | //config: default y |
| + | //config: help |
| + | //config: true returns an exit code of TRUE (0). |
| + | |
| + | //applet:IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true)) |
| + | |
| + | //kbuild:lib-$(CONFIG_TRUE) += true.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/true.html */ | |
| @@ -5,7 +5,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| //config:config TRUNCATE | |
| //config: bool "truncate" | |
| //config: default y | |
| @@ -13,9 +12,10 @@ | |
| //config: truncate truncates files to a given size. If a file does | |
| //config: not exist, it is created unless told otherwise. | |
| - | //kbuild:lib-$(CONFIG_TRUNCATE) += truncate.o |
| //applet:IF_TRUNCATE(APPLET_NOFORK(truncate, truncate, BB_DIR_USR_BIN, BB_SUID_DROP, truncate)) | |
| + | //kbuild:lib-$(CONFIG_TRUNCATE) += truncate.o |
| + | |
| //usage:#define truncate_trivial_usage | |
| //usage: "[-c] -s SIZE FILE..." | |
| //usage:#define truncate_full_usage "\n\n" | |
| @@ -6,6 +6,16 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config TTY |
| + | //config: bool "tty" |
| + | //config: default y |
| + | //config: help |
| + | //config: tty is used to print the name of the current terminal to |
| + | //config: standard output. |
| + | |
| + | //applet:IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_TTY) += tty.o |
| /* BB_AUDIT SUSv4 compliant */ | |
| /* http://www.opengroup.org/onlinepubs/9699919799/utilities/tty.html */ | |
| @@ -4,10 +4,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/uname.html */ |
| - | |
| /* Option Example | |
| * -s, --sysname SunOS | |
| * -n, --nodename rocky8 | |
| @@ -37,7 +33,6 @@ | |
| * -a, --all: all of the above, in the order shown. | |
| * If -p or -i is not known, don't show them | |
| */ | |
| - | |
| /* Busyboxed by Erik Andersen | |
| * | |
| * Before 2003: Glenn McGrath and Manuel Novoa III | |
| @@ -47,6 +42,26 @@ | |
| * Jan 2009: | |
| * Fix handling of -a to not print "unknown", add -o and -i support. | |
| */ | |
| + | //config:config UNAME |
| + | //config: bool "uname" |
| + | //config: default y |
| + | //config: help |
| + | //config: uname is used to print system information. |
| + | //config: |
| + | //config:config UNAME_OSNAME |
| + | //config: string "Operating system name" |
| + | //config: default "GNU/Linux" |
| + | //config: depends on UNAME |
| + | //config: help |
| + | //config: Sets the operating system name reported by uname -o. The |
| + | //config: default is "GNU/Linux". |
| + | |
| + | //applet:IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_UNAME) += uname.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/uname.html */ |
| //usage:#define uname_trivial_usage | |
| //usage: "[-amnrspvio]" | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config UNIQ |
| + | //config: bool "uniq" |
| + | //config: default y |
| + | //config: help |
| + | //config: uniq is used to remove duplicate lines from a sorted file. |
| + | |
| + | //applet:IF_UNIQ(APPLET(uniq, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_UNIQ) += uniq.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/uniq.html */ | |
| @@ -5,17 +5,16 @@ | |
| * | |
| * Licensed under GPLv2, see LICENSE in this source tree | |
| */ | |
| - | |
| //config:config UNLINK | |
| //config: bool "unlink" | |
| //config: default y | |
| //config: help | |
| //config: unlink deletes a file by calling unlink() | |
| - | //kbuild:lib-$(CONFIG_UNLINK) += unlink.o |
| - | |
| //applet:IF_UNLINK(APPLET(unlink, BB_DIR_USR_BIN, BB_SUID_DROP)) | |
| + | //kbuild:lib-$(CONFIG_UNLINK) += unlink.o |
| + | |
| //usage:#define unlink_trivial_usage | |
| //usage: "FILE" | |
| //usage:#define unlink_full_usage "\n\n" | |
| @@ -6,6 +6,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config USLEEP |
| + | //config: bool "usleep" |
| + | //config: default y |
| + | //config: help |
| + | //config: usleep is used to pause for a specified number of microseconds. |
| + | |
| + | //applet:IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep)) |
| + | |
| + | //kbuild:lib-$(CONFIG_USLEEP) += usleep.o |
| /* BB_AUDIT SUSv3 N/A -- Apparently a busybox extension. */ | |
| @@ -10,6 +10,15 @@ | |
| * Bugs: the spec doesn't mention anything about "`\n`\n" prior to the | |
| * "end" line | |
| */ | |
| + | //config:config UUDECODE |
| + | //config: bool "uudecode" |
| + | //config: default y |
| + | //config: help |
| + | //config: uudecode is used to decode a uuencoded file. |
| + | |
| + | //applet:IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_UUDECODE) += uudecode.o |
| //usage:#define uudecode_trivial_usage | |
| //usage: "[-o OUTFILE] [INFILE]" | |
| @@ -7,6 +7,15 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config UUENCODE |
| + | //config: bool "uuencode" |
| + | //config: default y |
| + | //config: help |
| + | //config: uuencode is used to uuencode a file. |
| + | |
| + | //applet:IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_UUENCODE) += uuencode.o |
| //usage:#define uuencode_trivial_usage | |
| //usage: "[-m] [FILE] STORED_FILENAME" | |
| @@ -6,10 +6,6 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 compliant. */ |
| - | /* http://www.opengroup.org/onlinepubs/007904975/utilities/wc.html */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Rewritten to fix a number of problems and do some size optimizations. | |
| @@ -36,6 +32,27 @@ | |
| * | |
| * for which 'wc -c' should output '0'. | |
| */ | |
| + | //config:config WC |
| + | //config: bool "wc" |
| + | //config: default y |
| + | //config: help |
| + | //config: wc is used to print the number of bytes, words, and lines, |
| + | //config: in specified files. |
| + | //config: |
| + | //config:config FEATURE_WC_LARGE |
| + | //config: bool "Support very large files in wc" |
| + | //config: default y |
| + | //config: depends on WC |
| + | //config: help |
| + | //config: Use "unsigned long long" in wc for counter variables. |
| + | |
| + | //applet:IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_WC) += wc.o |
| + | |
| + | /* BB_AUDIT SUSv3 compliant. */ |
| + | /* http://www.opengroup.org/onlinepubs/007904975/utilities/wc.html */ |
| + | |
| #include "libbb.h" | |
| #include "unicode.h" | |
| @@ -16,15 +16,13 @@ | |
| * | |
| *---------------------------------------------------------------------- | |
| */ | |
| - | /* BB_AUDIT SUSv3 _NOT_ compliant -- missing options -b, -d, -l, -m, -p, -q, -r, -s, -t, -T, -u; Missing argument 'file'. */ |
| - | |
| //config:config WHO | |
| //config: bool "who" | |
| //config: default y | |
| //config: depends on FEATURE_UTMP | |
| //config: help | |
| //config: who is used to show who is logged on. | |
| - | |
| + | //config: |
| //config:config USERS | |
| //config: bool "users" | |
| //config: default y | |
| @@ -33,11 +31,13 @@ | |
| //config: Print users currently logged on. | |
| //applet:IF_USERS(APPLET_ODDNAME(users, who, BB_DIR_USR_BIN, BB_SUID_DROP, users)) | |
| - | //applet:IF_WHO( APPLET( who, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| + | //applet:IF_WHO(APPLET(who, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| //kbuild:lib-$(CONFIG_USERS) += who.o | |
| //kbuild:lib-$(CONFIG_WHO) += who.o | |
| + | /* BB_AUDIT SUSv3 _NOT_ compliant -- missing options -b, -d, -l, -m, -p, -q, -r, -s, -t, -T, -u; Missing argument 'file'. */ |
| + | |
| //usage:#define users_trivial_usage | |
| //usage: "" | |
| //usage:#define users_full_usage "\n\n" | |
| @@ -6,6 +6,16 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| + | //config:config WHOAMI |
| + | //config: bool "whoami" |
| + | //config: default y |
| + | //config: help |
| + | //config: whoami is used to print the username of the current |
| + | //config: user id (same as id -un). |
| + | |
| + | //applet:IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami)) |
| + | |
| + | //kbuild:lib-$(CONFIG_WHOAMI) += whoami.o |
| /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ | |
| @@ -16,8 +26,6 @@ | |
| #include "libbb.h" | |
| - | /* This is a NOFORK applet. Be very careful! */ |
| - | |
| int whoami_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |
| int whoami_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |
| { | |
| @@ -6,23 +6,30 @@ | |
| * | |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. | |
| */ | |
| - | |
| - | /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ |
| - | |
| /* Mar 16, 2003 Manuel Novoa III ([email protected]) | |
| * | |
| * Size reductions and removed redundant applet name prefix from error messages. | |
| */ | |
| + | //config:config YES |
| + | //config: bool "yes" |
| + | //config: default y |
| + | //config: help |
| + | //config: yes is used to repeatedly output a specific string, or |
| + | //config: the default string `y'. |
| - | #include "libbb.h" |
| + | //applet:IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes)) |
| - | /* This is a NOFORK applet. Be very careful! */ |
| + | //kbuild:lib-$(CONFIG_YES) += yes.o |
| + | |
| + | /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ |
| //usage:#define yes_trivial_usage | |
| //usage: "[STRING]" | |
| //usage:#define yes_full_usage "\n\n" | |
| //usage: "Repeatedly output a line with STRING, or 'y'" | |
| + | #include "libbb.h" |
| + | |
| int yes_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |
| int yes_main(int argc UNUSED_PARAM, char **argv) | |
| { | |
| @@ -73,98 +73,28 @@ s - suid type: | |
| INSERT | |
| - | IF_TEST(APPLET_NOFORK([, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) |
| - | IF_TEST(APPLET_NOFORK([[, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) |
| - | IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename)) |
| - | IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat)) |
| - | IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP)) |
| IF_CHCON(APPLET(chcon, BB_DIR_USR_BIN, BB_SUID_DROP)) | |
| - | IF_CHGRP(APPLET_NOEXEC(chgrp, chgrp, BB_DIR_BIN, BB_SUID_DROP, chgrp)) |
| - | IF_CHMOD(APPLET_NOEXEC(chmod, chmod, BB_DIR_BIN, BB_SUID_DROP, chmod)) |
| - | IF_CHOWN(APPLET_NOEXEC(chown, chown, BB_DIR_BIN, BB_SUID_DROP, chown)) |
| - | IF_CHROOT(APPLET(chroot, BB_DIR_USR_SBIN, BB_SUID_DROP)) |
| - | IF_CKSUM(APPLET_NOEXEC(cksum, cksum, BB_DIR_USR_BIN, BB_SUID_DROP, cksum)) |
| - | IF_COMM(APPLET(comm, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_CP(APPLET_NOEXEC(cp, cp, BB_DIR_BIN, BB_SUID_DROP, cp)) |
| - | IF_CUT(APPLET_NOEXEC(cut, cut, BB_DIR_USR_BIN, BB_SUID_DROP, cut)) |
| - | IF_DD(APPLET_NOEXEC(dd, dd, BB_DIR_BIN, BB_SUID_DROP, dd)) |
| - | IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP)) |
| IF_DHCPRELAY(APPLET(dhcprelay, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| - | IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname)) |
| - | IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix)) |
| - | IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| IF_DUMPLEASES(APPLET(dumpleases, BB_DIR_USR_BIN, BB_SUID_DROP)) | |
| //IF_E2FSCK(APPLET(e2fsck, BB_DIR_SBIN, BB_SUID_DROP)) | |
| //IF_E2LABEL(APPLET_ODDNAME(e2label, tune2fs, BB_DIR_SBIN, BB_SUID_DROP, e2label)) | |
| - | IF_ECHO(APPLET_NOFORK(echo, echo, BB_DIR_BIN, BB_SUID_DROP, echo)) |
| - | IF_ENV(APPLET_NOEXEC(env, env, BB_DIR_USR_BIN, BB_SUID_DROP, env)) |
| - | IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false)) |
| - | IF_FOLD(APPLET_NOEXEC(fold, fold, BB_DIR_USR_BIN, BB_SUID_DROP, fold)) |
| //IF_E2FSCK(APPLET_ODDNAME(fsck.ext2, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext2)) | |
| //IF_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext3)) | |
| - | IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync)) |
| IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| - | IF_HEAD(APPLET_NOEXEC(head, head, BB_DIR_USR_BIN, BB_SUID_DROP, head)) |
| - | IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| //IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length)) | |
| - | IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, BB_SUID_DROP, ln)) |
| IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| - | IF_LOGNAME(APPLET_NOFORK(logname, logname, BB_DIR_USR_BIN, BB_SUID_DROP, logname)) |
| - | IF_LS(APPLET_NOEXEC(ls, ls, BB_DIR_BIN, BB_SUID_DROP, ls)) |
| IF_MATCHPATHCON(APPLET(matchpathcon, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| - | IF_MKDIR(APPLET_NOFORK(mkdir, mkdir, BB_DIR_BIN, BB_SUID_DROP, mkdir)) |
| - | IF_MKFIFO(APPLET_NOEXEC(mkfifo, mkfifo, BB_DIR_USR_BIN, BB_SUID_DROP, mkfifo)) |
| - | IF_MKNOD(APPLET_NOEXEC(mknod, mknod, BB_DIR_BIN, BB_SUID_DROP, mknod)) |
| - | IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP)) |
| - | IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP)) |
| - | IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| //IF_PARSE(APPLET(parse, BB_DIR_USR_BIN, BB_SUID_DROP)) | |
| - | IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv)) |
| - | IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf)) |
| - | IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd)) |
| - | IF_READLINK(APPLET(readlink, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_REALPATH(APPLET(realpath, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| IF_RESTORECON(APPLET_ODDNAME(restorecon, setfiles, BB_DIR_SBIN, BB_SUID_DROP, restorecon)) | |
| - | IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm)) |
| - | IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir)) |
| IF_RUNCON(APPLET(runcon, BB_DIR_USR_BIN, BB_SUID_DROP)) | |
| IF_SELINUXENABLED(APPLET(selinuxenabled, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| - | IF_SEQ(APPLET_NOFORK(seq, seq, BB_DIR_USR_BIN, BB_SUID_DROP, seq)) |
| IF_SESTATUS(APPLET(sestatus, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| IF_SETENFORCE(APPLET(setenforce, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| IF_SETFILES(APPLET(setfiles, BB_DIR_SBIN, BB_SUID_DROP)) | |
| IF_SETSEBOOL(APPLET(setsebool, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| - | /* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells: */ |
| - | IF_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP)) |
| - | IF_SORT(APPLET_NOEXEC(sort, sort, BB_DIR_USR_BIN, BB_SUID_DROP, sort)) |
| - | IF_SPLIT(APPLET(split, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_STAT(APPLET(stat, BB_DIR_BIN, BB_SUID_DROP)) |
| - | IF_STTY(APPLET(stty, BB_DIR_BIN, BB_SUID_DROP)) |
| - | IF_SUM(APPLET(sum, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac)) |
| - | IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_TEE(APPLET(tee, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) |
| - | IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true)) |
| - | IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| IF_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP)) | |
| IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) | |
| - | IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP)) |
| - | IF_UNEXPAND(APPLET_ODDNAME(unexpand, expand, BB_DIR_USR_BIN, BB_SUID_DROP, unexpand)) |
| - | IF_UNIQ(APPLET(uniq, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_UNIX2DOS(APPLET_NOEXEC(unix2dos, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, unix2dos)) |
| - | IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep)) |
| - | IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP)) |
| - | IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami)) |
| - | IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes)) |
| #if !defined(PROTOTYPES) && !defined(NAME_MAIN) && !defined(MAKE_USAGE) \ | |
| && !defined(MAKE_LINKS) && !defined(MAKE_SUID) | |