static int help(void) {
- printf("%s [options]\n\n"
+ printf("%s [OPTIONS...] {COMMAND} ...\n\n"
+ "Install init system units.\n\n"
" -h --help Show this help\n"
" --force Override existing links\n"
" --system Install into system\n"
" --session Install into session\n"
- " --global Install into all sessions\n"
+ " --global Install into all sessions\n\n"
"Commands:\n"
" enable [NAME...] Enable one or more units\n"
" disable [NAME...] Disable one or more units\n"
" test [NAME...] Test whether any of the specified units are enabled\n",
- __progname);
+ program_invocation_short_name);
return 0;
}
}
if (optind >= argc) {
- log_error("Missing verb.");
+ help();
return -EINVAL;
}
else if (streq(argv[optind], "test"))
arg_action = ACTION_TEST;
else {
- log_error("Unknown verb %s", argv[optind]);
+ log_error("Unknown verb %s.", argv[optind]);
return -EINVAL;
}
/* This is a minimal version of unit_name_valid() from
* unit-name.c */
- if (strchr(name, '/'))
- return false;
-
if (!*name)
return false;
if ((r = create_symlink(i->path, alias_path)) != 0)
goto finish;
+
+ if (arg_action == ACTION_DISABLE)
+ rmdir_parents(alias_path, config_path);
}
r = 0;
if ((r = create_symlink(i->path, alias_path)) != 0)
goto finish;
- if (arg_action == ACTION_DISABLE) {
- char *t;
-
- /* Try to remove .wants dir if we don't need it anymore */
- if (asprintf(&t, "%s/%s.wants", config_path, *s) >= 0) {
- rmdir(t);
- free(t);
- }
- }
+ if (arg_action == ACTION_DISABLE)
+ rmdir_parents(alias_path, config_path);
}
r = 0;
zero(paths);
- log_set_target(LOG_TARGET_CONSOLE);
- log_set_max_level(LOG_INFO);
log_parse_environment();
if ((r = parse_argv(argc, argv)) < 0)
goto finish;
}
- if ((r = lookup_paths_init(&paths, arg_where == WHERE_SYSTEM ? MANAGER_INIT : MANAGER_SESSION)) < 0) {
+ if ((r = lookup_paths_init(&paths, arg_where == WHERE_SYSTEM ? MANAGER_SYSTEM : MANAGER_SESSION)) < 0) {
log_error("Failed to determine lookup paths: %s", strerror(-r));
goto finish;
}