return 0;
}
-static int list_machines(int argc, char *argv[], void *userdata) {
+static int verb_list_machines(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
_cleanup_(table_unrefp) Table *table = NULL;
return show_table(table, "machines");
}
-static int list_images(int argc, char *argv[], void *userdata) {
+static int verb_list_images(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
return r;
}
-static int show_machine(int argc, char *argv[], void *userdata) {
+static int verb_show_machine(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
bool properties, new_line = false;
sd_bus *bus = ASSERT_PTR(userdata);
return r;
}
-static int show_image(int argc, char *argv[], void *userdata) {
+static int verb_show_image(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
bool properties, new_line = false;
sd_bus *bus = ASSERT_PTR(userdata);
return r;
}
-static int kill_machine(int argc, char *argv[], void *userdata) {
+static int verb_kill_machine(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int reboot_machine(int argc, char *argv[], void *userdata) {
+static int verb_reboot_machine(int argc, char *argv[], void *userdata) {
if (arg_runner == RUNNER_VMSPAWN)
return log_error_errno(
SYNTHETIC_ERRNO(EOPNOTSUPP),
arg_kill_whom = "leader";
arg_signal = SIGINT; /* sysvinit + systemd */
- return kill_machine(argc, argv, userdata);
+ return verb_kill_machine(argc, argv, userdata);
}
-static int poweroff_machine(int argc, char *argv[], void *userdata) {
+static int verb_poweroff_machine(int argc, char *argv[], void *userdata) {
arg_kill_whom = "leader";
arg_signal = SIGRTMIN+4; /* only systemd */
- return kill_machine(argc, argv, userdata);
+ return verb_kill_machine(argc, argv, userdata);
}
-static int terminate_machine(int argc, char *argv[], void *userdata) {
+static int verb_terminate_machine(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return copy_from ? "CopyFromMachine" : "CopyToMachine";
}
-static int copy_files(int argc, char *argv[], void *userdata) {
+static int verb_copy_files(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
_cleanup_free_ char *abs_host_path = NULL;
return 0;
}
-static int bind_mount(int argc, char *argv[], void *userdata) {
+static int verb_bind_mount(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int login_machine(int argc, char *argv[], void *userdata) {
+static int verb_login_machine(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(sd_bus_slot_unrefp) sd_bus_slot *slot = NULL;
return process_forward(event, slot, master, PTY_FORWARD_IGNORE_VHANGUP, machine);
}
-static int shell_machine(int argc, char *argv[], void *userdata) {
+static int verb_shell_machine(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL, *m = NULL;
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(sd_bus_slot_unrefp) sd_bus_slot *slot = NULL;
return -ENOENT;
}
-static int edit_settings(int argc, char *argv[], void *userdata) {
+static int verb_edit_settings(int argc, char *argv[], void *userdata) {
_cleanup_(edit_file_context_done) EditFileContext context = {};
int r;
return do_edit_files_and_install(&context);
}
-static int cat_settings(int argc, char *argv[], void *userdata) {
+static int verb_cat_settings(int argc, char *argv[], void *userdata) {
int r = 0;
if (arg_transport != BUS_TRANSPORT_LOCAL)
return r;
}
-static int remove_image(int argc, char *argv[], void *userdata) {
+static int verb_remove_image(int argc, char *argv[], void *userdata) {
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int rename_image(int argc, char *argv[], void *userdata) {
+static int verb_rename_image(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int clone_image(int argc, char *argv[], void *userdata) {
+static int verb_clone_image(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
sd_bus *bus = ASSERT_PTR(userdata);
return 0;
}
-static int read_only_image(int argc, char *argv[], void *userdata) {
+static int verb_read_only_image(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int b = true, r;
return 0;
}
-static int start_machine(int argc, char *argv[], void *userdata) {
+static int verb_start_machine(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(bus_wait_for_jobs_freep) BusWaitForJobs *w = NULL;
sd_bus *bus = ASSERT_PTR(userdata);
return 0;
}
-static int enable_machine(int argc, char *argv[], void *userdata) {
+static int verb_enable_machine(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
const char *method;
return log_oom();
if (enable)
- return start_machine(strv_length(new_args), new_args, userdata);
+ return verb_start_machine(strv_length(new_args), new_args, userdata);
- return poweroff_machine(strv_length(new_args), new_args, userdata);
+ return verb_poweroff_machine(strv_length(new_args), new_args, userdata);
}
return 0;
}
-static int set_limit(int argc, char *argv[], void *userdata) {
+static int verb_set_limit(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = userdata;
uint64_t limit;
return 0;
}
-static int clean_images(int argc, char *argv[], void *userdata) {
+static int verb_clean_images(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
uint64_t usage, total = 0;
return log_error_errno(r, "Failed to invoke 'importctl': %m");
}
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
_cleanup_free_ char *link = NULL;
int r;
return 0;
}
+static int verb_help(int argc, char *argv[], void *userdata) {
+ return help();
+}
+
static int parse_argv(int argc, char *argv[]) {
enum {
break;
case 'h':
- return help(0, NULL, NULL);
+ return help();
case ARG_VERSION:
return version();
static int machinectl_main(int argc, char *argv[], sd_bus *bus) {
static const Verb verbs[] = {
- { "help", VERB_ANY, VERB_ANY, 0, help },
- { "list", VERB_ANY, 1, VERB_DEFAULT, list_machines },
- { "list-images", VERB_ANY, 1, 0, list_images },
- { "status", 2, VERB_ANY, 0, show_machine },
- { "image-status", VERB_ANY, VERB_ANY, 0, show_image },
- { "show", VERB_ANY, VERB_ANY, 0, show_machine },
- { "show-image", VERB_ANY, VERB_ANY, 0, show_image },
- { "terminate", 2, VERB_ANY, 0, terminate_machine },
- { "reboot", 2, VERB_ANY, 0, reboot_machine },
- { "restart", 2, VERB_ANY, 0, reboot_machine }, /* Convenience alias */
- { "poweroff", 2, VERB_ANY, 0, poweroff_machine },
- { "stop", 2, VERB_ANY, 0, poweroff_machine }, /* Convenience alias */
- { "kill", 2, VERB_ANY, 0, kill_machine },
- { "login", VERB_ANY, 2, 0, login_machine },
- { "shell", VERB_ANY, VERB_ANY, 0, shell_machine },
- { "bind", 3, 4, 0, bind_mount },
- { "edit", 2, VERB_ANY, 0, edit_settings },
- { "cat", 2, VERB_ANY, 0, cat_settings },
- { "copy-to", 3, 4, 0, copy_files },
- { "copy-from", 3, 4, 0, copy_files },
- { "remove", 2, VERB_ANY, 0, remove_image },
- { "rename", 3, 3, 0, rename_image },
- { "clone", 3, 3, 0, clone_image },
- { "read-only", 2, 3, 0, read_only_image },
- { "start", 2, VERB_ANY, 0, start_machine },
- { "enable", 2, VERB_ANY, 0, enable_machine },
- { "disable", 2, VERB_ANY, 0, enable_machine },
- { "set-limit", 2, 3, 0, set_limit },
- { "clean", VERB_ANY, 1, 0, clean_images },
+ { "help", VERB_ANY, VERB_ANY, 0, verb_help },
+ { "list", VERB_ANY, 1, VERB_DEFAULT, verb_list_machines },
+ { "list-images", VERB_ANY, 1, 0, verb_list_images },
+ { "status", 2, VERB_ANY, 0, verb_show_machine },
+ { "image-status", VERB_ANY, VERB_ANY, 0, verb_show_image },
+ { "show", VERB_ANY, VERB_ANY, 0, verb_show_machine },
+ { "show-image", VERB_ANY, VERB_ANY, 0, verb_show_image },
+ { "terminate", 2, VERB_ANY, 0, verb_terminate_machine },
+ { "reboot", 2, VERB_ANY, 0, verb_reboot_machine },
+ { "restart", 2, VERB_ANY, 0, verb_reboot_machine }, /* Convenience alias */
+ { "poweroff", 2, VERB_ANY, 0, verb_poweroff_machine },
+ { "stop", 2, VERB_ANY, 0, verb_poweroff_machine }, /* Convenience alias */
+ { "kill", 2, VERB_ANY, 0, verb_kill_machine },
+ { "login", VERB_ANY, 2, 0, verb_login_machine },
+ { "shell", VERB_ANY, VERB_ANY, 0, verb_shell_machine },
+ { "bind", 3, 4, 0, verb_bind_mount },
+ { "edit", 2, VERB_ANY, 0, verb_edit_settings },
+ { "cat", 2, VERB_ANY, 0, verb_cat_settings },
+ { "copy-to", 3, 4, 0, verb_copy_files },
+ { "copy-from", 3, 4, 0, verb_copy_files },
+ { "remove", 2, VERB_ANY, 0, verb_remove_image },
+ { "rename", 3, 3, 0, verb_rename_image },
+ { "clone", 3, 3, 0, verb_clone_image },
+ { "read-only", 2, 3, 0, verb_read_only_image },
+ { "start", 2, VERB_ANY, 0, verb_start_machine },
+ { "enable", 2, VERB_ANY, 0, verb_enable_machine },
+ { "disable", 2, VERB_ANY, 0, verb_enable_machine },
+ { "set-limit", 2, 3, 0, verb_set_limit },
+ { "clean", VERB_ANY, 1, 0, verb_clean_images },
{}
};