aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--toys.h2
-rw-r--r--toys/Config.in8
-rw-r--r--toys/sleep.c11
-rw-r--r--toys/toylist.h5
4 files changed, 25 insertions, 1 deletions
diff --git a/toys.h b/toys.h
index 372944e5..ce77b747 100644
--- a/toys.h
+++ b/toys.h
@@ -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))