* RTC uses a local timezone instead (maybe you dual-boot MS-Windows).
* That flag should not be needed on systems with adjtime support.
*/
+//config:config RTCWAKE
+//config: bool "rtcwake (6.4 kb)"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Enter a system sleep state until specified wakeup time.
+
+//applet:IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_RTCWAKE) += rtcwake.o
//usage:#define rtcwake_trivial_usage
//usage: "[-a | -l | -u] [-d DEV] [-m MODE] [-s SEC | -t TIME]"
//usage: "\n -a,--auto Read clock mode from adjtime"
//usage: "\n -l,--local Clock is set to local time"
//usage: "\n -u,--utc Clock is set to UTC time"
-//usage: "\n -d,--device=DEV Specify the RTC device"
-//usage: "\n -m,--mode=MODE Set the sleep state (default: standby)"
-//usage: "\n -s,--seconds=SEC Set the timeout in SEC seconds from now"
-//usage: "\n -t,--time=TIME Set the timeout to TIME seconds from epoch"
+//usage: "\n -d,--device DEV Specify the RTC device"
+//usage: "\n -m,--mode MODE Set sleep state (default: standby)"
+//usage: "\n -s,--seconds SEC Set timeout in SEC seconds from now"
+//usage: "\n -t,--time TIME Set timeout to TIME seconds from epoch"
//usage: )
//usage: IF_NOT_LONG_OPTS(
//usage: "\n -a Read clock mode from adjtime"
//usage: "\n -l Clock is set to local time"
//usage: "\n -u Clock is set to UTC time"
//usage: "\n -d DEV Specify the RTC device"
-//usage: "\n -m MODE Set the sleep state (default: standby)"
-//usage: "\n -s SEC Set the timeout in SEC seconds from now"
-//usage: "\n -t TIME Set the timeout to TIME seconds from epoch"
+//usage: "\n -m MODE Set sleep state (default: standby)"
+//usage: "\n -s SEC Set timeout in SEC seconds from now"
+//usage: "\n -t TIME Set timeout to TIME seconds from epoch"
//usage: )
#include "libbb.h"
return false;
/* wakeup events could be disabled or not supported */
- return strncmp(buf, "enabled\n", 8) == 0;
+ return is_prefixed_with(buf, "enabled\n") != NULL;
}
static NOINLINE void setup_alarm(int fd, time_t *wakeup, time_t rtc_time)
"seconds\0" Required_argument "s"
"time\0" Required_argument "t"
;
- applet_long_options = rtcwake_longopts;
#endif
- /* Must have -s or -t, exclusive */
- opt_complementary = "s:t:s--t:t--s";
- opt = getopt32(argv, "alud:m:s:t:", &rtcname, &suspend, &opt_seconds, &opt_time);
+ opt = getopt32long(argv,
+ /* Must have -s or -t, exclusive */
+ "^alud:m:s:t:" "\0" "s:t:s--t:t--s", rtcwake_longopts,
+ &rtcname, &suspend, &opt_seconds, &opt_time);
/* this is the default
if (opt & RTCWAKE_OPT_AUTO)