More updates to the docs, and fixes to sync things with the docs.

-Erik
This commit is contained in:
Erik Andersen 2000-04-17 16:16:10 +00:00
parent 4fd10fc73b
commit e5b6c7dd9c
17 changed files with 182 additions and 65 deletions

View File

@ -1,4 +1,5 @@
0.43 0.43
* Major update to the provided documentation.
* Busybox now includes a shell! It currently costs 7.5 k (plus an * Busybox now includes a shell! It currently costs 7.5 k (plus an
additional 2.5 k if you compile in command line editing). Handles additional 2.5 k if you compile in command line editing). Handles
job control, has the usual set of builtins, and does everything job control, has the usual set of builtins, and does everything

View File

@ -25,8 +25,8 @@
#include <sys/types.h> #include <sys/types.h>
static const char tty_usage[] = "tty\n\n" static const char tty_usage[] = "tty\n\n"
"Print the file name of the terminal connected to standard input.\n" "Print the file name of the terminal connected to standard input.\n\n"
"Options:\n"
"\t-s\tprint nothing, only return an exit status\n"; "\t-s\tprint nothing, only return an exit status\n";
extern int tty_main(int argc, char **argv) extern int tty_main(int argc, char **argv)

View File

@ -28,15 +28,9 @@
#include <errno.h> #include <errno.h>
static const char uniq_usage[] = static const char uniq_usage[] =
"uniq [OPTION]... [INPUT [OUTPUT]]\n" "uniq [OPTION]... [INPUT [OUTPUT]]\n\n"
"Discard all but one of successive identical lines from INPUT (or\n" "Discard all but one of successive identical lines from INPUT\n"
"standard input), writing to OUTPUT (or standard output).\n" "(or standard input), writing to OUTPUT (or standard output).\n";
"\n"
"\t-h\tdisplay this help and exit\n"
"\n"
"A field is a run of whitespace, then non-whitespace characters.\n"
"Fields are skipped before chars.\n";
/* max chars in line */ /* max chars in line */
#define UNIQ_MAX 4096 #define UNIQ_MAX 4096
@ -190,4 +184,4 @@ int uniq_main(int argc, char **argv)
exit(0); exit(0);
} }
/* $Id: uniq.c,v 1.8 2000/04/13 01:18:56 erik Exp $ */ /* $Id: uniq.c,v 1.9 2000/04/17 16:16:10 erik Exp $ */

View File

@ -25,7 +25,8 @@
static const char wc_usage[] = "wc [OPTION]... [FILE]...\n\n" static const char wc_usage[] = "wc [OPTION]... [FILE]...\n\n"
"Print line, word, and byte counts for each FILE, and a total line if\n" "Print line, word, and byte counts for each FILE, and a total line if\n"
"more than one FILE is specified. With no FILE, read standard input.\n" "more than one FILE is specified. With no FILE, read standard input.\n\n"
"Options:\n"
"\t-c\tprint the byte counts\n" "\t-c\tprint the byte counts\n"
"\t-l\tprint the newline counts\n" "\t-l\tprint the newline counts\n"

View File

@ -25,9 +25,7 @@
#include <pwd.h> #include <pwd.h>
static const char whoami_usage[] = "whoami\n\n" static const char whoami_usage[] = "whoami\n\n"
"Print the user name associated with the current effective user id.\n" "Prints the user name associated with the current effective user id.\n";
"Same as id -un.\n";
extern int whoami_main(int argc, char **argv) extern int whoami_main(int argc, char **argv)
{ {

View File

@ -27,12 +27,18 @@ extern int yes_main(int argc, char **argv)
{ {
int i; int i;
if (argc == 1) if (argc >=1 && *argv[1]=='-') {
usage("yes [OPTION]... [STRING]...\n\n"
"Repeatedly outputs a line with all specified STRING(s), or `y'.\n");
}
if (argc == 1) {
while (1) while (1)
if (puts("y") == EOF) { if (puts("y") == EOF) {
perror("yes"); perror("yes");
exit(FALSE); exit(FALSE);
} }
}
while (1) while (1)
for (i = 1; i < argc; i++) for (i = 1; i < argc; i++)

View File

@ -1290,6 +1290,10 @@ Example:
=item sh =item sh
Usage: sh
lash -- the BusyBox LAme SHell (command interpreter)
FIXME FIXME
------------------------------- -------------------------------
@ -1528,12 +1532,10 @@ Example:
=item tr =item tr
Usage: Usage: tr [-csu] string1 string2
tr [-cu] -d string1
tr [-csu] string1 string2 tr [-cu] -s string1
tr [-cu] -d string1 tr [-cu] -ds string1 string2
tr [-cu] -s string1
tr [-cu] -ds string1 string2
Translate, squeeze, and/or delete characters from standard Translate, squeeze, and/or delete characters from standard
input, writing to standard output. input, writing to standard output.
@ -1559,67 +1561,162 @@ Example:
=item tty =item tty
FIXME Usage: tty
Print the file name of the terminal connected to standard input.
Options:
-s print nothing, only return an exit status
Example:
$ tty
/dev/tty2
------------------------------- -------------------------------
=item umount =item umount
FIXME Usage: umount [flags] filesystem|directory
Flags:
-a: Unmount all file systems
-r: Try to remount devices as read-only if mount is busy
-f: Do not free loop device (if a loop device has been used)
Example:
$ umount /dev/hdc1
------------------------------- -------------------------------
=item uname =item uname
FIXME Usage: uname [OPTION]...
Print certain system information. With no OPTION, same as -s.
Options:
-a print all information
-m the machine (hardware) type
-n print the machine's network node hostname
-r print the operating system release
-s print the operating system name
-p print the host processor type
-v print the operating system version
Example:
$ uname -a
Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
------------------------------- -------------------------------
=item uniq =item uniq
FIXME Usage: uniq [OPTION]... [INPUT [OUTPUT]]
Discard all but one of successive identical lines from INPUT
(or standard input), writing to OUTPUT (or standard output).
Example:
$ echo -e "a\na\nb\nc\nc\na" | sort | uniq
a
b
c
------------------------------- -------------------------------
=item update =item update
FIXME Usage: update [options]
Periodically flushes filesystem buffers.
Options:
-S force use of sync(2) instead of flushing
-s SECS call sync this often (default 30)
-f SECS flush some buffers this often (default 5)
------------------------------- -------------------------------
=item uptime =item uptime
FIXME Usage: uptime
Tells how long the system has been running since boot.
Example:
$ uptime
1:55pm up 2:30, load average: 0.09, 0.04, 0.00
------------------------------- -------------------------------
=item usleep =item usleep
FIXME Usage: usleep N
Pauses for N microseconds.
Example:
$ usleep 1000000
[pauses for 1 second]
------------------------------- -------------------------------
=item wc =item wc
FIXME Usage: wc [OPTION]... [FILE]...
Print line, word, and byte counts for each FILE, and a total line if
more than one FILE is specified. With no FILE, read standard input.
Options:
-c print the byte counts
-l print the newline counts
-L print the length of the longest line
-w print the word counts
Example:
$ wc /etc/passwd
31 46 1365 /etc/passwd
------------------------------- -------------------------------
=item whoami =item whoami
FIXME Usage: whoami
Prints the user name associated with the current effective user id.
Example:
$ whoami
andersen
------------------------------- -------------------------------
=item yes =item yes
FIXME Usage: yes [OPTION]... [STRING]...
Repeatedly outputs a line with all specified STRING(s), or `y'.
------------------------------- -------------------------------
=item zcat =item zcat
FIXME This is essentially an alias for invoking "gunzip -c", where
it decompresses the file inquestion and send the output to stdout.
------------------------------- -------------------------------
@ -1684,4 +1781,4 @@ Enrique Zanardi <ezanardi@ull.es>
=cut =cut
# $Id: busybox.pod,v 1.12 2000/04/17 05:13:59 beppu Exp $ # $Id: busybox.pod,v 1.13 2000/04/17 16:16:10 erik Exp $

5
lash.c
View File

@ -961,9 +961,12 @@ int shell_main(int argc, char **argv)
fprintf(stdout, "\n\nBusyBox v%s (%s) Built-in shell\n", BB_VER, BB_BT); fprintf(stdout, "\n\nBusyBox v%s (%s) Built-in shell\n", BB_VER, BB_BT);
fprintf(stdout, "Enter 'help' for a list of built-in commands.\n\n"); fprintf(stdout, "Enter 'help' for a list of built-in commands.\n\n");
} else { } else {
if (*argv[1]=='-') {
usage("sh\n\nlash -- the BusyBox LAme SHell (command interpreter)\n");
}
input = fopen(argv[1], "r"); input = fopen(argv[1], "r");
if (!input) { if (!input) {
fatalError("A: Couldn't open file '%s': %s\n", argv[1], fatalError("sh: Couldn't open file '%s': %s\n", argv[1],
strerror(errno)); strerror(errno));
} }
} }

View File

@ -35,10 +35,12 @@ _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */ #endif /* __GLIBC__ */
static char update_usage[] = static char update_usage[] =
"update [options]\n" "update [options]\n\n"
" -S\tforce use of sync(2) instead of flushing\n" "Periodically flushes filesystem buffers.\n\n"
" -s SECS\tcall sync this often (default 30)\n" "Options:\n"
" -f SECS\tflush some buffers this often (default 5)\n"; "\t-S\tforce use of sync(2) instead of flushing\n"
"\t-s SECS\tcall sync this often (default 30)\n"
"\t-f SECS\tflush some buffers this often (default 5)\n";
static unsigned int sync_duration = 30; static unsigned int sync_duration = 30;
static unsigned int flush_duration = 5; static unsigned int flush_duration = 5;
@ -48,6 +50,8 @@ extern int update_main(int argc, char **argv)
{ {
int pid; int pid;
argc--;
argv++;
while (**argv == '-') { while (**argv == '-') {
while (*++(*argv)) { while (*++(*argv)) {
switch (**argv) { switch (**argv) {
@ -62,6 +66,8 @@ extern int update_main(int argc, char **argv)
if (--argc < 1) usage(update_usage); if (--argc < 1) usage(update_usage);
flush_duration = atoi(*(++argv)); flush_duration = atoi(*(++argv));
break; break;
default:
usage(update_usage);
} }
} }
argc--; argc--;
@ -100,7 +106,7 @@ extern int update_main(int argc, char **argv)
} }
} }
} }
return TRUE; exit( TRUE);
} }
/* /*

5
sh.c
View File

@ -961,9 +961,12 @@ int shell_main(int argc, char **argv)
fprintf(stdout, "\n\nBusyBox v%s (%s) Built-in shell\n", BB_VER, BB_BT); fprintf(stdout, "\n\nBusyBox v%s (%s) Built-in shell\n", BB_VER, BB_BT);
fprintf(stdout, "Enter 'help' for a list of built-in commands.\n\n"); fprintf(stdout, "Enter 'help' for a list of built-in commands.\n\n");
} else { } else {
if (*argv[1]=='-') {
usage("sh\n\nlash -- the BusyBox LAme SHell (command interpreter)\n");
}
input = fopen(argv[1], "r"); input = fopen(argv[1], "r");
if (!input) { if (!input) {
fatalError("A: Couldn't open file '%s': %s\n", argv[1], fatalError("sh: Couldn't open file '%s': %s\n", argv[1],
strerror(errno)); strerror(errno));
} }
} }

View File

@ -961,9 +961,12 @@ int shell_main(int argc, char **argv)
fprintf(stdout, "\n\nBusyBox v%s (%s) Built-in shell\n", BB_VER, BB_BT); fprintf(stdout, "\n\nBusyBox v%s (%s) Built-in shell\n", BB_VER, BB_BT);
fprintf(stdout, "Enter 'help' for a list of built-in commands.\n\n"); fprintf(stdout, "Enter 'help' for a list of built-in commands.\n\n");
} else { } else {
if (*argv[1]=='-') {
usage("sh\n\nlash -- the BusyBox LAme SHell (command interpreter)\n");
}
input = fopen(argv[1], "r"); input = fopen(argv[1], "r");
if (!input) { if (!input) {
fatalError("A: Couldn't open file '%s': %s\n", argv[1], fatalError("sh: Couldn't open file '%s': %s\n", argv[1],
strerror(errno)); strerror(errno));
} }
} }

4
tty.c
View File

@ -25,8 +25,8 @@
#include <sys/types.h> #include <sys/types.h>
static const char tty_usage[] = "tty\n\n" static const char tty_usage[] = "tty\n\n"
"Print the file name of the terminal connected to standard input.\n" "Print the file name of the terminal connected to standard input.\n\n"
"Options:\n"
"\t-s\tprint nothing, only return an exit status\n"; "\t-s\tprint nothing, only return an exit status\n";
extern int tty_main(int argc, char **argv) extern int tty_main(int argc, char **argv)

14
uniq.c
View File

@ -28,15 +28,9 @@
#include <errno.h> #include <errno.h>
static const char uniq_usage[] = static const char uniq_usage[] =
"uniq [OPTION]... [INPUT [OUTPUT]]\n" "uniq [OPTION]... [INPUT [OUTPUT]]\n\n"
"Discard all but one of successive identical lines from INPUT (or\n" "Discard all but one of successive identical lines from INPUT\n"
"standard input), writing to OUTPUT (or standard output).\n" "(or standard input), writing to OUTPUT (or standard output).\n";
"\n"
"\t-h\tdisplay this help and exit\n"
"\n"
"A field is a run of whitespace, then non-whitespace characters.\n"
"Fields are skipped before chars.\n";
/* max chars in line */ /* max chars in line */
#define UNIQ_MAX 4096 #define UNIQ_MAX 4096
@ -190,4 +184,4 @@ int uniq_main(int argc, char **argv)
exit(0); exit(0);
} }
/* $Id: uniq.c,v 1.8 2000/04/13 01:18:56 erik Exp $ */ /* $Id: uniq.c,v 1.9 2000/04/17 16:16:10 erik Exp $ */

View File

@ -35,10 +35,12 @@ _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */ #endif /* __GLIBC__ */
static char update_usage[] = static char update_usage[] =
"update [options]\n" "update [options]\n\n"
" -S\tforce use of sync(2) instead of flushing\n" "Periodically flushes filesystem buffers.\n\n"
" -s SECS\tcall sync this often (default 30)\n" "Options:\n"
" -f SECS\tflush some buffers this often (default 5)\n"; "\t-S\tforce use of sync(2) instead of flushing\n"
"\t-s SECS\tcall sync this often (default 30)\n"
"\t-f SECS\tflush some buffers this often (default 5)\n";
static unsigned int sync_duration = 30; static unsigned int sync_duration = 30;
static unsigned int flush_duration = 5; static unsigned int flush_duration = 5;
@ -48,6 +50,8 @@ extern int update_main(int argc, char **argv)
{ {
int pid; int pid;
argc--;
argv++;
while (**argv == '-') { while (**argv == '-') {
while (*++(*argv)) { while (*++(*argv)) {
switch (**argv) { switch (**argv) {
@ -62,6 +66,8 @@ extern int update_main(int argc, char **argv)
if (--argc < 1) usage(update_usage); if (--argc < 1) usage(update_usage);
flush_duration = atoi(*(++argv)); flush_duration = atoi(*(++argv));
break; break;
default:
usage(update_usage);
} }
} }
argc--; argc--;
@ -100,7 +106,7 @@ extern int update_main(int argc, char **argv)
} }
} }
} }
return TRUE; exit( TRUE);
} }
/* /*

3
wc.c
View File

@ -25,7 +25,8 @@
static const char wc_usage[] = "wc [OPTION]... [FILE]...\n\n" static const char wc_usage[] = "wc [OPTION]... [FILE]...\n\n"
"Print line, word, and byte counts for each FILE, and a total line if\n" "Print line, word, and byte counts for each FILE, and a total line if\n"
"more than one FILE is specified. With no FILE, read standard input.\n" "more than one FILE is specified. With no FILE, read standard input.\n\n"
"Options:\n"
"\t-c\tprint the byte counts\n" "\t-c\tprint the byte counts\n"
"\t-l\tprint the newline counts\n" "\t-l\tprint the newline counts\n"

View File

@ -25,9 +25,7 @@
#include <pwd.h> #include <pwd.h>
static const char whoami_usage[] = "whoami\n\n" static const char whoami_usage[] = "whoami\n\n"
"Print the user name associated with the current effective user id.\n" "Prints the user name associated with the current effective user id.\n";
"Same as id -un.\n";
extern int whoami_main(int argc, char **argv) extern int whoami_main(int argc, char **argv)
{ {

8
yes.c
View File

@ -27,12 +27,18 @@ extern int yes_main(int argc, char **argv)
{ {
int i; int i;
if (argc == 1) if (argc >=1 && *argv[1]=='-') {
usage("yes [OPTION]... [STRING]...\n\n"
"Repeatedly outputs a line with all specified STRING(s), or `y'.\n");
}
if (argc == 1) {
while (1) while (1)
if (puts("y") == EOF) { if (puts("y") == EOF) {
perror("yes"); perror("yes");
exit(FALSE); exit(FALSE);
} }
}
while (1) while (1)
for (i = 1; i < argc; i++) for (i = 1; i < argc; i++)