*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
+
+//usage:#define acpid_trivial_usage
+//usage: "[-d] [-c CONFDIR] [-l LOGFILE] [-a ACTIONFILE] [-M MAPFILE] [-e PROC_EVENT_FILE] [-p PIDFILE]"
+//usage:#define acpid_full_usage "\n\n"
+//usage: "Listen to ACPI events and spawn specific helpers on event arrival\n"
+//usage: "\n -c DIR Config directory [/etc/acpi]"
+//usage: "\n -d Don't daemonize, (implies -f)"
+//usage: "\n -e FILE /proc event file [/proc/acpi/event]"
+//usage: "\n -f Run in foreground"
+//usage: "\n -l FILE Log file [/var/log/acpid.log]"
+//usage: "\n -p FILE Pid file [/var/run/acpid.pid]"
+//usage: "\n -a FILE Action file [/etc/acpid.conf]"
+//usage: "\n -M FILE Map file [/etc/acpi.map]"
+//usage: IF_FEATURE_ACPID_COMPAT(
+//usage: "\n\nAccept and ignore compatibility options -g -m -s -S -v"
+//usage: )
+//usage:
+//usage:#define acpid_example_usage
+//usage: "Without -e option, acpid uses all /dev/input/event* files\n"
+//usage: "# acpid\n"
+//usage: "# acpid -l /var/log/my-acpi-log\n"
+//usage: "# acpid -e /proc/acpi/event\n"
+
#include "libbb.h"
#include <syslog.h>
#include <linux/input.h>
OPT_e = (1 << 2),
OPT_f = (1 << 3),
OPT_l = (1 << 4),
- OPT_p = (1 << 5) * ENABLE_FEATURE_PIDFILE,
- OPT_a = (1 << 6),
- OPT_M = (1 << 7),
+ OPT_a = (1 << 5),
+ OPT_M = (1 << 6),
+ OPT_p = (1 << 7) * ENABLE_FEATURE_PIDFILE,
};
struct acpi_event {
INIT_G();
opt_complementary = "df:e--e";
- opts = getopt32(argv, "c:de:fl:p:a:M:" IF_FEATURE_ACPID_COMPAT("g:m:s:S:v"),
- &opt_dir, &opt_input, &opt_logfile, &opt_pidfile, &opt_action, &opt_map
+ opts = getopt32(argv, "c:de:fl:a:M:" IF_FEATURE_PIDFILE("p:") IF_FEATURE_ACPID_COMPAT("g:m:s:S:v"),
+ &opt_dir, &opt_input, &opt_logfile, &opt_action, &opt_map
+ IF_FEATURE_PIDFILE(, &opt_pidfile)
IF_FEATURE_ACPID_COMPAT(, NULL, NULL, NULL, NULL)
);
char *buf;
int len;
- buf = xmalloc_reads(pfd[i].fd, NULL, NULL);
+ buf = xmalloc_reads(pfd[i].fd, NULL);
/* buf = "button/power PWRB 00000080 00000000" */
len = strlen(buf) - 9;
if (len >= 0)