1*cf5a6c84SAndroid Build Coastguard Worker /* sleep.c - Wait for a number of seconds. 2*cf5a6c84SAndroid Build Coastguard Worker * 3*cf5a6c84SAndroid Build Coastguard Worker * Copyright 2007 Rob Landley <[email protected]> 4*cf5a6c84SAndroid Build Coastguard Worker * Copyright 2012 Georgi Chorbadzhiyski <[email protected]> 5*cf5a6c84SAndroid Build Coastguard Worker * 6*cf5a6c84SAndroid Build Coastguard Worker * See http://opengroup.org/onlinepubs/9699919799/utilities/sleep.html 7*cf5a6c84SAndroid Build Coastguard Worker 8*cf5a6c84SAndroid Build Coastguard Worker USE_SLEEP(NEWTOY(sleep, "<1", TOYFLAG_BIN)) 9*cf5a6c84SAndroid Build Coastguard Worker 10*cf5a6c84SAndroid Build Coastguard Worker config SLEEP 11*cf5a6c84SAndroid Build Coastguard Worker bool "sleep" 12*cf5a6c84SAndroid Build Coastguard Worker default y 13*cf5a6c84SAndroid Build Coastguard Worker help 14*cf5a6c84SAndroid Build Coastguard Worker usage: sleep DURATION... 15*cf5a6c84SAndroid Build Coastguard Worker 16*cf5a6c84SAndroid Build Coastguard Worker Wait before exiting. 17*cf5a6c84SAndroid Build Coastguard Worker 18*cf5a6c84SAndroid Build Coastguard Worker DURATION can be a decimal fraction. An optional suffix can be "m" 19*cf5a6c84SAndroid Build Coastguard Worker (minutes), "h" (hours), "d" (days), or "s" (seconds, the default). 20*cf5a6c84SAndroid Build Coastguard Worker */ 21*cf5a6c84SAndroid Build Coastguard Worker 22*cf5a6c84SAndroid Build Coastguard Worker #include "toys.h" 23*cf5a6c84SAndroid Build Coastguard Worker sleep_main(void)24*cf5a6c84SAndroid Build Coastguard Workervoid sleep_main(void) 25*cf5a6c84SAndroid Build Coastguard Worker { 26*cf5a6c84SAndroid Build Coastguard Worker struct timespec ts; 27*cf5a6c84SAndroid Build Coastguard Worker char **args; 28*cf5a6c84SAndroid Build Coastguard Worker 29*cf5a6c84SAndroid Build Coastguard Worker for (args = toys.optargs; !toys.exitval && *args; args++) { 30*cf5a6c84SAndroid Build Coastguard Worker xparsetimespec(*args, &ts); 31*cf5a6c84SAndroid Build Coastguard Worker toys.exitval = !!nanosleep(&ts, NULL); 32*cf5a6c84SAndroid Build Coastguard Worker } 33*cf5a6c84SAndroid Build Coastguard Worker } 34