diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2015-06-04 20:48:10 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2015-06-04 20:48:10 +0000 |
| commit | 4b31caa9cdaef67c70bc7fb43963ba68b7bf5bb1 (patch) | |
| tree | b9d634a9199d7f69ae4e1f35d88edac63d04abcf /src/s6-rc/s6-rc-dryrun.c | |
| download | s6-rc-4b31caa9cdaef67c70bc7fb43963ba68b7bf5bb1.tar.gz | |
Initial commit
Diffstat (limited to 'src/s6-rc/s6-rc-dryrun.c')
| -rw-r--r-- | src/s6-rc/s6-rc-dryrun.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/s6-rc/s6-rc-dryrun.c b/src/s6-rc/s6-rc-dryrun.c new file mode 100644 index 0000000..f826ca8 --- /dev/null +++ b/src/s6-rc/s6-rc-dryrun.c @@ -0,0 +1,46 @@ +/* ISC license. */ + +#include <skalibs/uint.h> +#include <skalibs/buffer.h> +#include <skalibs/sgetopt.h> +#include <skalibs/strerr2.h> +#include <skalibs/tai.h> +#include <skalibs/iopause.h> + +#define USAGE "s6-rc-dryrun [ -t timeout ] args..." +#define dieusage() strerr_dieusage(100, USAGE) + +int main (int argc, char const *const *argv) +{ + tain_t deadline ; + PROG = "s6-rc-dryrun" ; + { + unsigned int t = 1000 ; + subgetopt_t l = SUBGETOPT_ZERO ; + for (;;) + { + register int opt = subgetopt_r(argc, argv, "t:", &l) ; + if (opt == -1) break ; + switch (opt) + { + case 't': if (!uint0_scan(l.arg, &t)) dieusage() ; break ; + default : strerr_dieusage(100, USAGE) ; + } + } + argc -= l.ind ; argv += l.ind ; + tain_from_millisecs(&deadline, t) ; + } + if (!argc) dieusage() ; + buffer_puts(buffer_1, PROG) ; + buffer_put(buffer_1, ":", 1) ; + for (; *argv ; argv++) + { + buffer_put(buffer_1, " ", 1) ; + buffer_puts(buffer_1, *argv) ; + } + buffer_putflush(buffer_1, "\n", 1) ; + tain_now_g() ; + tain_add_g(&deadline, &deadline) ; + deepsleepuntil_g(&deadline) ; + return 0 ; +} |
