#include "device-private.h"
#include "device-util.h"
#include "libudev-util.h"
+#include "path-util.h"
#include "string-util.h"
#include "strxcpyx.h"
#include "udev-builtin.h"
"Test an event run.\n\n"
" -h --help Show this help\n"
" -V --version Show package version\n"
- " -a --action=ACTION Set action string\n"
+ " -a --action=ACTION|help Set action string\n"
" -N --resolve-names=early|late|never When to resolve names\n"
, program_invocation_short_name);
case 'a': {
DeviceAction a;
+ if (streq(optarg, "help")) {
+ dump_device_action_table();
+ return 0;
+ }
+
a = device_action_from_string(optarg);
if (a < 0)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"syspath parameter missing.");
/* add /sys if needed */
- if (!startswith(argv[optind], "/sys"))
+ if (!path_startswith(argv[optind], "/sys"))
strscpyl(arg_syspath, sizeof(arg_syspath), "/sys", argv[optind], NULL);
else
strscpy(arg_syspath, sizeof(arg_syspath), argv[optind]);
_cleanup_(sd_device_unrefp) sd_device *dev = NULL;
const char *cmd, *key, *value;
sigset_t mask, sigmask_orig;
- Iterator i;
void *val;
int r;
udev_builtin_init();
- r = udev_rules_new(&rules, arg_resolve_name_timing);
+ r = udev_rules_load(&rules, arg_resolve_name_timing);
if (r < 0) {
log_error_errno(r, "Failed to read udev rules: %m");
goto out;
assert_se(sigfillset(&mask) >= 0);
assert_se(sigprocmask(SIG_SETMASK, &mask, &sigmask_orig) >= 0);
- udev_event_execute_rules(event, 60 * USEC_PER_SEC, NULL, rules);
+ udev_event_execute_rules(event, 60 * USEC_PER_SEC, SIGKILL, NULL, rules);
FOREACH_DEVICE_PROPERTY(dev, key, value)
printf("%s=%s\n", key, value);
- ORDERED_HASHMAP_FOREACH_KEY(val, cmd, event->run_list, i) {
+ ORDERED_HASHMAP_FOREACH_KEY(val, cmd, event->run_list) {
char program[UTIL_PATH_SIZE];
- udev_event_apply_format(event, cmd, program, sizeof(program), false);
+ (void) udev_event_apply_format(event, cmd, program, sizeof(program), false);
printf("run: '%s'\n", program);
}