-static int machinectl_main(sd_bus *bus, int argc, char *argv[]) {
-
- static const struct {
- const char* verb;
- const enum {
- MORE,
- LESS,
- EQUAL
- } argc_cmp;
- const int argc;
- int (* const dispatch)(sd_bus *bus, char **args, unsigned n);
- } verbs[] = {
- { "list", LESS, 1, list_machines },
- { "list-images", LESS, 1, list_images },
- { "status", MORE, 2, show },
- { "show", MORE, 1, show },
- { "terminate", MORE, 2, terminate_machine },
- { "reboot", MORE, 2, reboot_machine },
- { "poweroff", MORE, 2, poweroff_machine },
- { "kill", MORE, 2, kill_machine },
- { "login", MORE, 2, login_machine },
- { "bind", MORE, 3, bind_mount },
- { "copy-to", MORE, 3, copy_files },
- { "copy-from", MORE, 3, copy_files },
+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 },
+ { "show", VERB_ANY, VERB_ANY, 0, show },
+ { "terminate", 2, VERB_ANY, 0, terminate_machine },
+ { "reboot", 2, VERB_ANY, 0, reboot_machine },
+ { "poweroff", 2, VERB_ANY, 0, poweroff_machine },
+ { "kill", 2, VERB_ANY, 0, kill_machine },
+ { "login", 2, 2, 0, login_machine },
+ { "bind", 3, 4, 0, bind_mount },
+ { "copy-to", 3, 4, 0, copy_files },
+ { "copy-from", 3, 4, 0, copy_files },
+ {}