From 5ac0162c3af95efa08a07b84ff62ad32842922c7 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 5 Jan 2015 13:19:55 +0100 Subject: [PATCH] udevadm,..: make --help output of udev tools more like the output of the various other tools --- Makefile.am | 3 +- src/udev/accelerometer/accelerometer.c | 12 +++--- src/udev/collect/collect.c | 14 ++++--- src/udev/scsi_id/scsi_id.c | 28 +++++++------- src/udev/udev-builtin-blkid.c | 2 +- src/udev/udev-builtin-hwdb.c | 2 +- src/udev/udev-builtin-input_id.c | 2 +- src/udev/udev-builtin-keyboard.c | 2 +- src/udev/udev-builtin-kmod.c | 2 +- src/udev/udev-builtin-net_id.c | 2 +- src/udev/udev-builtin-net_setup_link.c | 2 +- src/udev/udev-builtin-path_id.c | 2 +- src/udev/udev-builtin-uaccess.c | 2 +- src/udev/udev-builtin-usb_id.c | 2 +- src/udev/udev-builtin.c | 2 +- src/udev/udevadm-control.c | 25 +++++++------ src/udev/udevadm-info.c | 52 ++++++++++++++------------ src/udev/udevadm-monitor.c | 19 ++++++---- src/udev/udevadm-settle.c | 13 ++++--- src/udev/udevadm-test-builtin.c | 12 ++++-- src/udev/udevadm-test.c | 19 +++++++--- src/udev/udevadm-trigger.c | 39 ++++++++++--------- src/udev/udevadm.c | 9 +++-- src/udev/udevd.c | 17 +++++---- src/udev/v4l_id/v4l_id.c | 19 ++++++---- 25 files changed, 172 insertions(+), 131 deletions(-) diff --git a/Makefile.am b/Makefile.am index 10fc8a9c8..0b46a128a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3778,7 +3778,8 @@ v4l_id_SOURCES = \ src/udev/v4l_id/v4l_id.c v4l_id_LDADD = \ - libudev-internal.la + libudev-internal.la \ + libsystemd-shared.la udevlibexec_PROGRAMS += \ v4l_id diff --git a/src/udev/accelerometer/accelerometer.c b/src/udev/accelerometer/accelerometer.c index 9c13d9787..0f1b3c6ec 100644 --- a/src/udev/accelerometer/accelerometer.c +++ b/src/udev/accelerometer/accelerometer.c @@ -195,11 +195,13 @@ static void test_orientation(struct udev *udev, puts(text); } -static void help(void) -{ - printf("Usage: accelerometer [options] \n" - " -d,--debug debug to stderr\n" - " -h,--help print this help text\n\n"); +static void help(void) { + + printf("%s [options] \n\n" + "Accelerometer device identification.\n\n" + " -h --help Print this message\n" + " -d --debug Debug to stderr\n" + , program_invocation_short_name); } int main (int argc, char** argv) diff --git a/src/udev/collect/collect.c b/src/udev/collect/collect.c index 11a618c8e..4bb6edbef 100644 --- a/src/udev/collect/collect.c +++ b/src/udev/collect/collect.c @@ -68,17 +68,19 @@ noreturn static void sig_alrm(int signo) static void usage(void) { - printf("Usage: collect [options] \n" - " -a,--add add ID to the list \n" - " -r,--remove remove ID from the list \n" - " -d,--debug debug to stderr\n" - " -h,--help print this help text\n\n" + printf("%s [options] \n\n" + "Collect variables across events.\n\n" + " -h --help Print this message\n" + " -a --add Add ID to the list \n" + " -r --remove Remove ID from the list \n" + " -d --debug Debug to stderr\n\n" " Adds ID to the list governed by .\n" " must be part of the list .\n" " If all IDs given by are listed (ie collect has been\n" " invoked for each ID in ) collect returns 0, the\n" " number of missing IDs otherwise.\n" - " On error a negative number is returned.\n\n"); + " On error a negative number is returned.\n\n" + , program_invocation_short_name); } /* diff --git a/src/udev/scsi_id/scsi_id.c b/src/udev/scsi_id/scsi_id.c index 52702331a..a1b8e75fa 100644 --- a/src/udev/scsi_id/scsi_id.c +++ b/src/udev/scsi_id/scsi_id.c @@ -304,18 +304,20 @@ static int get_file_options(struct udev *udev, } static void help(void) { - printf("Usage: scsi_id [OPTION...] DEVICE\n" - " -d,--device= device node for SG_IO commands\n" - " -f,--config= location of config file\n" - " -p,--page=0x80|0x83|pre-spc3-83 SCSI page (0x80, 0x83, pre-spc3-83)\n" - " -s,--sg-version=3|4 use SGv3 or SGv4\n" - " -b,--blacklisted treat device as blacklisted\n" - " -g,--whitelisted treat device as whitelisted\n" - " -u,--replace-whitespace replace all whitespace by underscores\n" - " -v,--verbose verbose logging\n" - " -V,--version print version\n" - " -x,--export print values as environment keys\n" - " -h,--help print this help text\n\n"); + printf("Usage: %s [OPTION...] DEVICE\n\n" + "SCSI device identification.\n\n" + " -h --help Print this message\n" + " --version Print version of the program\n\n" + " -d --device= Device node for SG_IO commands\n" + " -f --config= Location of config file\n" + " -p --page=0x80|0x83|pre-spc3-83 SCSI page (0x80, 0x83, pre-spc3-83)\n" + " -s --sg-version=3|4 Use SGv3 or SGv4\n" + " -b --blacklisted Treat device as blacklisted\n" + " -g --whitelisted Treat device as whitelisted\n" + " -u --replace-whitespace Replace all whitespace by underscores\n" + " -v --verbose Verbose logging\n" + " -x --export Print values as environment keys\n" + , program_invocation_short_name); } @@ -606,7 +608,7 @@ int main(int argc, char **argv) exit(1); if (!dev_specified) { - log_error("no device specified"); + log_error("No device specified."); retval = 1; goto exit; } diff --git a/src/udev/udev-builtin-blkid.c b/src/udev/udev-builtin-blkid.c index 83bd8c40f..548985ef7 100644 --- a/src/udev/udev-builtin-blkid.c +++ b/src/udev/udev-builtin-blkid.c @@ -325,6 +325,6 @@ out: const struct udev_builtin udev_builtin_blkid = { .name = "blkid", .cmd = builtin_blkid, - .help = "filesystem and partition probing", + .help = "Filesystem and partition probing", .run_once = true, }; diff --git a/src/udev/udev-builtin-hwdb.c b/src/udev/udev-builtin-hwdb.c index e8301c6a3..95476648f 100644 --- a/src/udev/udev-builtin-hwdb.c +++ b/src/udev/udev-builtin-hwdb.c @@ -216,5 +216,5 @@ const struct udev_builtin udev_builtin_hwdb = { .init = builtin_hwdb_init, .exit = builtin_hwdb_exit, .validate = builtin_hwdb_validate, - .help = "hardware database", + .help = "Hardware database", }; diff --git a/src/udev/udev-builtin-input_id.c b/src/udev/udev-builtin-input_id.c index 1a1121ef9..a3289128b 100644 --- a/src/udev/udev-builtin-input_id.c +++ b/src/udev/udev-builtin-input_id.c @@ -222,5 +222,5 @@ static int builtin_input_id(struct udev_device *dev, int argc, char *argv[], boo const struct udev_builtin udev_builtin_input_id = { .name = "input_id", .cmd = builtin_input_id, - .help = "input device properties", + .help = "Input device properties", }; diff --git a/src/udev/udev-builtin-keyboard.c b/src/udev/udev-builtin-keyboard.c index 273b27ddc..118e797c9 100644 --- a/src/udev/udev-builtin-keyboard.c +++ b/src/udev/udev-builtin-keyboard.c @@ -165,5 +165,5 @@ static int builtin_keyboard(struct udev_device *dev, int argc, char *argv[], boo const struct udev_builtin udev_builtin_keyboard = { .name = "keyboard", .cmd = builtin_keyboard, - .help = "keyboard scan code to key mapping", + .help = "Keyboard scan code to key mapping", }; diff --git a/src/udev/udev-builtin-kmod.c b/src/udev/udev-builtin-kmod.c index 0949d9fad..ad2829e50 100644 --- a/src/udev/udev-builtin-kmod.c +++ b/src/udev/udev-builtin-kmod.c @@ -122,6 +122,6 @@ const struct udev_builtin udev_builtin_kmod = { .init = builtin_kmod_init, .exit = builtin_kmod_exit, .validate = builtin_kmod_validate, - .help = "kernel module loader", + .help = "Kernel module loader", .run_once = false, }; diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c index 95e54520b..2e0846701 100644 --- a/src/udev/udev-builtin-net_id.c +++ b/src/udev/udev-builtin-net_id.c @@ -562,5 +562,5 @@ out: const struct udev_builtin udev_builtin_net_id = { .name = "net_id", .cmd = builtin_net_id, - .help = "network device properties", + .help = "Network device properties", }; diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c index 55b624130..d4589470f 100644 --- a/src/udev/udev-builtin-net_setup_link.c +++ b/src/udev/udev-builtin-net_setup_link.c @@ -103,6 +103,6 @@ const struct udev_builtin udev_builtin_net_setup_link = { .init = builtin_net_setup_link_init, .exit = builtin_net_setup_link_exit, .validate = builtin_net_setup_link_validate, - .help = "configure network link", + .help = "Configure network link", .run_once = false, }; diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c index d540ba839..b6749aab7 100644 --- a/src/udev/udev-builtin-path_id.c +++ b/src/udev/udev-builtin-path_id.c @@ -703,6 +703,6 @@ out: const struct udev_builtin udev_builtin_path_id = { .name = "path_id", .cmd = builtin_path_id, - .help = "compose persistent device path", + .help = "Compose persistent device path", .run_once = true, }; diff --git a/src/udev/udev-builtin-uaccess.c b/src/udev/udev-builtin-uaccess.c index 591915435..b78c09b91 100644 --- a/src/udev/udev-builtin-uaccess.c +++ b/src/udev/udev-builtin-uaccess.c @@ -89,5 +89,5 @@ finish: const struct udev_builtin udev_builtin_uaccess = { .name = "uaccess", .cmd = builtin_uaccess, - .help = "manage device node user ACL", + .help = "Manage device node user ACL", }; diff --git a/src/udev/udev-builtin-usb_id.c b/src/udev/udev-builtin-usb_id.c index 06d419158..ab0d96e37 100644 --- a/src/udev/udev-builtin-usb_id.c +++ b/src/udev/udev-builtin-usb_id.c @@ -471,6 +471,6 @@ fallback: const struct udev_builtin udev_builtin_usb_id = { .name = "usb_id", .cmd = builtin_usb_id, - .help = "usb device properties", + .help = "USB device properties", .run_once = true, }; diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c index 3bcbd6e82..1950ec23a 100644 --- a/src/udev/udev-builtin.c +++ b/src/udev/udev-builtin.c @@ -88,7 +88,7 @@ void udev_builtin_list(struct udev *udev) { unsigned int i; for (i = 0; i < ELEMENTSOF(builtins); i++) - fprintf(stderr, " %-12s %s\n", builtins[i]->name, builtins[i]->help); + fprintf(stderr, " %-14s %s\n", builtins[i]->name, builtins[i]->help); } const char *udev_builtin_name(enum udev_builtin_cmd cmd) { diff --git a/src/udev/udevadm-control.c b/src/udev/udevadm-control.c index 6e3bc2ae9..6af7163d4 100644 --- a/src/udev/udevadm-control.c +++ b/src/udev/udevadm-control.c @@ -29,16 +29,19 @@ #include "udev-util.h" static void print_help(void) { - printf("Usage: udevadm control COMMAND\n" - " -e,--exit instruct the daemon to cleanup and exit\n" - " -l,--log-priority=LEVEL set the udev log level for the daemon\n" - " -s,--stop-exec-queue do not execute events, queue only\n" - " -S,--start-exec-queue execute events, flush queue\n" - " -R,--reload reload rules and databases\n" - " -p,--property=KEY=VALUE set a global property for all events\n" - " -m,--children-max=N maximum number of children\n" - " --timeout=SECONDS maximum time to block for a reply\n" - " -h,--help print this help text\n\n"); + printf("%s control COMMAND\n\n" + "Control the udev daemon.\n\n" + " -h --help Show this help\n" + " --version Show package version\n" + " -e --exit Instruct the daemon to cleanup and exit\n" + " -l --log-priority=LEVEL Set the udev log level for the daemon\n" + " -s --stop-exec-queue Do not execute events, queue only\n" + " -S --start-exec-queue Execute events, flush queue\n" + " -R --reload Reload rules and databases\n" + " -p --property=KEY=VALUE Set a global property for all events\n" + " -m --children-max=N Maximum number of children\n" + " --timeout=SECONDS Maximum time to block for a reply\n" + , program_invocation_short_name); } static int adm_control(struct udev *udev, int argc, char *argv[]) { @@ -161,5 +164,5 @@ static int adm_control(struct udev *udev, int argc, char *argv[]) { const struct udevadm_cmd udevadm_control = { .name = "control", .cmd = adm_control, - .help = "control the udev daemon", + .help = "Control the udev daemon", }; diff --git a/src/udev/udevadm-info.c b/src/udev/udevadm-info.c index a56f15954..f52a03dfd 100644 --- a/src/udev/udevadm-info.c +++ b/src/udev/udevadm-info.c @@ -258,6 +258,31 @@ static void cleanup_db(struct udev *udev) { } } +static void help(void) { + + printf("%s info [OPTIONS] [DEVPATH|FILE]\n\n" + "Query sysfs or the udev database.\n\n" + " -h --help Print this message\n" + " --version Print version of the program\n" + " -q --query=TYPE Query device information:\n" + " name Name of device node\n" + " symlink Pointing to node\n" + " path sysfs device path\n" + " property The device properties\n" + " all All values\n" + " -p --path=SYSPATH sysfs device path used for query or attribute walk\n" + " -n --name=NAME Node or symlink name used for query or attribute walk\n" + " -r --root Prepend dev directory to path names\n" + " -a --attribute-walk Print all key matches walking along the chain\n" + " of parent devices\n" + " -d --device-id-of-file=FILE Print major:minor of device containing this file\n" + " -x --export Export key/value pairs\n" + " -P --export-prefix Export the key name with a prefix\n" + " -e --export-db Export the content of the udev database\n" + " -c --cleanup-db Clean up the udev database\n" + , program_invocation_short_name); +} + static int uinfo(struct udev *udev, int argc, char *argv[]) { _cleanup_udev_device_unref_ struct udev_device *device = NULL; bool root = 0; @@ -283,27 +308,6 @@ static int uinfo(struct udev *udev, int argc, char *argv[]) { {} }; - static const char *usage = - "Usage: udevadm info [OPTIONS] [DEVPATH|FILE]\n" - " -q,--query=TYPE query device information:\n" - " name name of device node\n" - " symlink pointing to node\n" - " path sys device path\n" - " property the device properties\n" - " all all values\n" - " -p,--path=SYSPATH sys device path used for query or attribute walk\n" - " -n,--name=NAME node or symlink name used for query or attribute walk\n" - " -r,--root prepend dev directory to path names\n" - " -a,--attribute-walk print all key matches walking along the chain\n" - " of parent devices\n" - " -d,--device-id-of-file=FILE print major:minor of device containing this file\n" - " -x,--export export key/value pairs\n" - " -P,--export-prefix export the key name with a prefix\n" - " -e,--export-db export the content of the udev database\n" - " -c,--cleanup-db cleanup the udev database\n" - " --version print version of the program\n" - " -h,--help print this message\n"; - enum action_type { ACTION_QUERY, ACTION_ATTRIBUTE_WALK, @@ -388,7 +392,7 @@ static int uinfo(struct udev *udev, int argc, char *argv[]) { printf("%s\n", VERSION); return 0; case 'h': - printf("%s\n", usage); + help(); return 0; default: return 1; @@ -398,7 +402,7 @@ static int uinfo(struct udev *udev, int argc, char *argv[]) { case ACTION_QUERY: if (!device) { if (!argv[optind]) { - fprintf(stderr, "%s\n", usage); + help(); return 2; } device = find_device(udev, argv[optind], NULL); @@ -489,5 +493,5 @@ static int uinfo(struct udev *udev, int argc, char *argv[]) { const struct udevadm_cmd udevadm_info = { .name = "info", .cmd = uinfo, - .help = "query sysfs or the udev database", + .help = "Query sysfs or the udev database", }; diff --git a/src/udev/udevadm-monitor.c b/src/udev/udevadm-monitor.c index 1a5f516dd..15ded0933 100644 --- a/src/udev/udevadm-monitor.c +++ b/src/udev/udevadm-monitor.c @@ -64,13 +64,16 @@ static void print_device(struct udev_device *device, const char *source, int pro } static void help(void) { - printf("Usage: udevadm monitor [--property] [--kernel] [--udev] [--help]\n" - " -p,--property print the event properties\n" - " -k,--kernel print kernel uevents\n" - " -u,--udev print udev events\n" - " -s,--subsystem-match=SUBSYSTEM[/DEVTYPE] filter events by subsystem\n" - " -t,--tag-match=TAG filter events by tag\n" - " -h,--help\n\n"); + printf("%s monitor [--property] [--kernel] [--udev] [--help]\n\n" + "Listen to kernel and udev events.\n\n" + " -h --help Show this help\n" + " --version Show package version\n" + " -p --property Print the event properties\n" + " -k --kernel Print kernel uevents\n" + " -u --udev Print udev events\n" + " -s --subsystem-match=SUBSYSTEM[/DEVTYPE] Filter events by subsystem\n" + " -t --tag-match=TAG Filter events by tag\n" + , program_invocation_short_name); } static int adm_monitor(struct udev *udev, int argc, char *argv[]) { @@ -276,5 +279,5 @@ static int adm_monitor(struct udev *udev, int argc, char *argv[]) { const struct udevadm_cmd udevadm_monitor = { .name = "monitor", .cmd = adm_monitor, - .help = "listen to kernel and udev events", + .help = "Listen to kernel and udev events", }; diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c index ddcf1ddf9..9eab8b2a2 100644 --- a/src/udev/udevadm-settle.c +++ b/src/udev/udevadm-settle.c @@ -37,10 +37,13 @@ #include "util.h" static void help(void) { - printf("Usage: udevadm settle OPTIONS\n" - " -t,--timeout= maximum time to wait for events\n" - " -E,--exit-if-exists= stop waiting if file exists\n" - " -h,--help\n\n"); + printf("%s settle OPTIONS\n\n" + "Wait for pending udev events.\n\n" + " -h --help Show this help\n" + " --version Show package version\n" + " -t --timeout=SECONDS Maximum time to wait for events\n" + " -E --exit-if-exists=FILE Stop waiting if file exists\n" + , program_invocation_short_name); } static int adm_settle(struct udev *udev, int argc, char *argv[]) { @@ -145,5 +148,5 @@ out: const struct udevadm_cmd udevadm_settle = { .name = "settle", .cmd = adm_settle, - .help = "wait for pending udev events", + .help = "Wait for pending udev events", }; diff --git a/src/udev/udevadm-test-builtin.c b/src/udev/udevadm-test-builtin.c index a300e1e9d..b2a737629 100644 --- a/src/udev/udevadm-test-builtin.c +++ b/src/udev/udevadm-test-builtin.c @@ -34,10 +34,14 @@ #include "udev.h" static void help(struct udev *udev) { - fprintf(stderr, "\n"); - fprintf(stderr, "Usage: udevadm builtin [--help] COMMAND SYSPATH\n"); + printf("%s builtin [--help] COMMAND SYSPATH\n\n" + "Test a built-in command.\n\n" + " -h --help Print this message\n" + " --version Print version of the program\n\n" + "Commands:\n" + , program_invocation_short_name); + udev_builtin_list(udev); - fprintf(stderr, "\n"); } static int adm_builtin(struct udev *udev, int argc, char *argv[]) { @@ -112,6 +116,6 @@ out: const struct udevadm_cmd udevadm_test_builtin = { .name = "test-builtin", .cmd = adm_builtin, - .help = "test a built-in command", + .help = "Test a built-in command", .debug = true, }; diff --git a/src/udev/udevadm-test.c b/src/udev/udevadm-test.c index d9d61b42d..4922b5b6a 100644 --- a/src/udev/udevadm-test.c +++ b/src/udev/udevadm-test.c @@ -31,6 +31,17 @@ #include "udev.h" #include "udev-util.h" +static void help(void) { + + printf("%s test OPTIONS \n\n" + "Test an event run.\n" + " -h --help Show this help\n" + " --version Show package version\n" + " -a --action=ACTION Set action string\n" + " -N --resolve-names=early|late|never When to resolve names\n" + , program_invocation_short_name); +} + static int adm_test(struct udev *udev, int argc, char *argv[]) { int resolve_names = 1; char filename[UTIL_PATH_SIZE]; @@ -71,11 +82,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) { } break; case 'h': - printf("Usage: udevadm test OPTIONS \n" - " -a,--action=ACTION set action string\n" - " -N,--resolve-names=early|late|never when to resolve names\n" - " -h,--help print this help string\n" - "\n"); + help(); exit(EXIT_SUCCESS); case '?': exit(EXIT_FAILURE); @@ -161,6 +168,6 @@ out: const struct udevadm_cmd udevadm_test = { .name = "test", .cmd = adm_test, - .help = "test an event run", + .help = "Test an event run", .debug = true, }; diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c index 4308466b8..4dc756a28 100644 --- a/src/udev/udevadm-trigger.c +++ b/src/udev/udevadm-trigger.c @@ -73,23 +73,26 @@ static const char *keyval(const char *str, const char **val, char *buf, size_t s } static void help(void) { - printf("Usage: udevadm trigger OPTIONS\n" - " -v,--verbose print the list of devices while running\n" - " -n,--dry-run do not actually trigger the events\n" - " -t,--type= type of events to trigger\n" - " devices sys devices (default)\n" - " subsystems sys subsystems and drivers\n" - " -c,--action= event action value, default is \"change\"\n" - " -s,--subsystem-match= trigger devices from a matching subsystem\n" - " -S,--subsystem-nomatch= exclude devices from a matching subsystem\n" - " -a,--attr-match=]> trigger devices with a matching attribute\n" - " -A,--attr-nomatch=]> exclude devices with a matching attribute\n" - " -p,--property-match== trigger devices with a matching property\n" - " -g,--tag-match== trigger devices with a matching property\n" - " -y,--sysname-match= trigger devices with this /sys path\n" - " --name-match= trigger devices with this /dev name\n" - " -b,--parent-match= trigger devices with that parent device\n" - " -h,--help\n\n"); + printf("%s trigger OPTIONS\n\n" + "Request events from the kernel.\n\n" + " -h --help Show this help\n" + " --version Show package version\n" + " -v --verbose Print the list of devices while running\n" + " -n --dry-run Do not actually trigger the events\n" + " -t --type= Type of events to trigger\n" + " devices sysfs devices (default)\n" + " subsystems sysfs subsystems and drivers\n" + " -c --action=ACTION Event action value, default is \"change\"\n" + " -s --subsystem-match=SUBSYSTEM Trigger devices from a matching subsystem\n" + " -S --subsystem-nomatch=SUBSYSTEM Exclude devices from a matching subsystem\n" + " -a --attr-match=FILE[=VALUE] Trigger devices with a matching attribute\n" + " -A --attr-nomatch=FILE[=VALUE] Exclude devices with a matching attribute\n" + " -p --property-match=KEY=VALUE Trigger devices with a matching property\n" + " -g --tag-match=KEY=VALUE Trigger devices with a matching property\n" + " -y --sysname-match=NAME Trigger devices with this /sys path\n" + " --name-match=NAME Trigger devices with this /dev name\n" + " -b --parent-match=NAME Trigger devices with that parent device\n" + , program_invocation_short_name); } static int adm_trigger(struct udev *udev, int argc, char *argv[]) { @@ -245,5 +248,5 @@ static int adm_trigger(struct udev *udev, int argc, char *argv[]) { const struct udevadm_cmd udevadm_trigger = { .name = "trigger", .cmd = adm_trigger, - .help = "request events from the kernel", + .help = "Request events from the kernel", }; diff --git a/src/udev/udevadm.c b/src/udev/udevadm.c index a957e9270..56cd0cd4e 100644 --- a/src/udev/udevadm.c +++ b/src/udev/udevadm.c @@ -60,11 +60,14 @@ static const struct udevadm_cmd *udevadm_cmds[] = { static int adm_help(struct udev *udev, int argc, char *argv[]) { unsigned int i; - fprintf(stderr, "Usage: udevadm [--help] [--version] [--debug] COMMAND [COMMAND OPTIONS]\n"); + printf("%s [--help] [--version] [--debug] COMMAND [COMMAND OPTIONS]\n\n" + "Send control commands or test the device manager.\n\n" + "Commands:\n" + , program_invocation_short_name); + for (i = 0; i < ELEMENTSOF(udevadm_cmds); i++) if (udevadm_cmds[i]->help != NULL) - printf(" %-12s %s\n", udevadm_cmds[i]->name, udevadm_cmds[i]->help); - fprintf(stderr, "\n"); + printf(" %-12s %s\n", udevadm_cmds[i]->name, udevadm_cmds[i]->help); return 0; } diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 3edb29bde..009e39523 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1004,14 +1004,15 @@ static void kernel_cmdline_options(struct udev *udev) { static void help(void) { printf("%s [OPTIONS...]\n\n" "Manages devices.\n\n" - " --daemon\n" - " --debug\n" - " --children-max=\n" - " --exec-delay=\n" - " --event-timeout=\n" - " --resolve-names=early|late|never\n" - " --version\n" - " --help\n" + " -h --help Print this message\n" + " --version Print version of the program\n" + " --daemon Detach and run in the background\n" + " --debug Enable debug output\n" + " --children-max=INT Set maximum number of workers\n" + " --exec-delay=SECONDS Seconds to wait before executing RUN=\n" + " --event-timeout=SECONDS Seconds to wait before terminating an event\n" + " --resolve-names=early|late|never\n" + " When to resolve users and groups\n" , program_invocation_short_name); } diff --git a/src/udev/v4l_id/v4l_id.c b/src/udev/v4l_id/v4l_id.c index 08d3efa85..0ebe43463 100644 --- a/src/udev/v4l_id/v4l_id.c +++ b/src/udev/v4l_id/v4l_id.c @@ -26,17 +26,18 @@ #include #include -int main (int argc, char *argv[]) -{ +#include "util.h" + +int main(int argc, char *argv[]) { static const struct option options[] = { { "help", no_argument, NULL, 'h' }, {} }; - int fd; + _cleanup_close_ int fd = -1; char *device; struct v4l2_capability v2cap; - while (1) { + for (;;) { int option; option = getopt_long(argc, argv, "h", options, NULL); @@ -45,7 +46,10 @@ int main (int argc, char *argv[]) switch (option) { case 'h': - printf("Usage: v4l_id [-h,--help] \n\n"); + printf("%s [-h,--help] \n\n" + "Video4Linux device identification.\n\n" + " -h Print this message\n" + , program_invocation_short_name); return 0; default: return 1; @@ -55,11 +59,11 @@ int main (int argc, char *argv[]) if (device == NULL) return 2; - fd = open (device, O_RDONLY); + fd = open(device, O_RDONLY); if (fd < 0) return 3; - if (ioctl (fd, VIDIOC_QUERYCAP, &v2cap) == 0) { + if (ioctl(fd, VIDIOC_QUERYCAP, &v2cap) == 0) { printf("ID_V4L_VERSION=2\n"); printf("ID_V4L_PRODUCT=%s\n", v2cap.card); printf("ID_V4L_CAPABILITIES=:"); @@ -78,6 +82,5 @@ int main (int argc, char *argv[]) printf("\n"); } - close (fd); return 0; } -- 2.30.2