diff options
-rw-r--r-- | toys.h | 2 | ||||
-rw-r--r-- | toys/Config.in | 8 | ||||
-rw-r--r-- | toys/sleep.c | 11 | ||||
-rw-r--r-- | toys/toylist.h | 5 |
4 files changed, 25 insertions, 1 deletions
@@ -50,7 +50,7 @@ void toy_exec(char *argv[]); extern struct toy_context { struct toy_list *which; // Which entry in toy_list is this one? int exitval; // Value error_exit feeds to exit() - char **argv; // Command line arguments + char **argv; // Original command line arguments unsigned optflags; // Command line option flags from get_optflags() char **optargs; // Arguments left over from get_optflags() } toys; diff --git a/toys/Config.in b/toys/Config.in index ff4c68a3..fcec743e 100644 --- a/toys/Config.in +++ b/toys/Config.in @@ -217,6 +217,14 @@ config READLINK_FINAL -f Show final location, including normal files and multiple symlinks. +config SLEEP + bool "sleep" + default n + help + usage: sleep SECONDS + + Wait a decimal integer number of seconds. + config SYNC bool "sync" default n diff --git a/toys/sleep.c b/toys/sleep.c new file mode 100644 index 00000000..06c4565d --- /dev/null +++ b/toys/sleep.c @@ -0,0 +1,11 @@ +/* vi: set sw=4 ts=4: */ +/* + * sleep.c - Wait for a number of seconds. + */ + +#include "toys.h" + +int sleep_main(void) +{ + return sleep(atol(*toys.optargs)); +} diff --git a/toys/toylist.h b/toys/toylist.h index 41b76698..0b3845d9 100644 --- a/toys/toylist.h +++ b/toys/toylist.h @@ -45,6 +45,10 @@ struct mke2fs_data { struct ext2_superblock sb; }; +struct sleep_data { + long seconds; +}; + struct touch_data { char *ref_file; char *time; @@ -97,6 +101,7 @@ USE_ONEIT(NEWTOY(oneit, "+<1p", TOYFLAG_SBIN)) USE_PWD(NEWTOY(pwd, NULL, TOYFLAG_BIN)) USE_READLINK(NEWTOY(readlink, "<1f", TOYFLAG_BIN)) USE_TOYSH(OLDTOY(sh, toysh, "c:i", TOYFLAG_BIN)) +USE_SLEEP(NEWTOY(sleep, "<1", TOYFLAG_BIN)) USE_SYNC(NEWTOY(sync, NULL, TOYFLAG_BIN)) USE_TOUCH(NEWTOY(touch, "l#t:r:mca", TOYFLAG_BIN)) USE_TOYSH(NEWTOY(toysh, "c:i", TOYFLAG_BIN)) |