-
-static int subvolume_cmds(int argc, char *argv[])
-{
- char *cmd = pop_cmd(&argc, argv);
- if (argc < 1)
- return subvolume_usage();
- if (!strcmp(cmd, "create"))
- return cmd_subvolume_create(argc, argv);
- if (!strcmp(cmd, "delete"))
- return cmd_subvolume_delete(argc, argv);
- if (!strcmp(cmd, "snapshot"))
- return cmd_subvolume_snapshot(argc, argv);
-
- return 0;
-}
-
-int main(int argc, char *argv[])
-{
- raid_init();
-
- full_cmd = argv[0];
-
- /* Are we being called via a symlink? */
-
- if (strstr(full_cmd, "mkfs"))
- return cmd_format(argc, argv);
-
- if (strstr(full_cmd, "fsck"))
- return cmd_fsck(argc, argv);
-
-#ifdef BCACHEFS_FUSE
- if (strstr(full_cmd, "mount.fuse"))
- return cmd_fusemount(argc, argv);
-#endif
-
-#ifndef BCACHEFS_NO_RUST
- if (strstr(full_cmd, "mount"))
- return cmd_mount(argc, argv);
-#endif
-
- setvbuf(stdout, NULL, _IOLBF, 0);
-
- char *cmd = pop_cmd(&argc, argv);
- if (!cmd) {
- puts("missing command\n");
- goto usage;
- }
-
- /* these subcommands display usage when argc < 2 */
- if (!strcmp(cmd, "device"))
- return device_cmds(argc, argv);
- if (!strcmp(cmd, "fs"))
- return fs_cmds(argc, argv);
- if (!strcmp(cmd, "data"))
- return data_cmds(argc, argv);
- if (!strcmp(cmd, "subvolume"))
- return subvolume_cmds(argc, argv);
- if (!strcmp(cmd, "format"))
- return cmd_format(argc, argv);
- if (!strcmp(cmd, "fsck"))
- return cmd_fsck(argc, argv);
- if (!strcmp(cmd, "version"))
- return cmd_version(argc, argv);
- if (!strcmp(cmd, "show-super"))
- return cmd_show_super(argc, argv);
- if (!strcmp(cmd, "set-option"))
- return cmd_set_option(argc, argv);
-
-#if 0
- if (!strcmp(cmd, "assemble"))
- return cmd_assemble(argc, argv);
- if (!strcmp(cmd, "incremental"))
- return cmd_incremental(argc, argv);
- if (!strcmp(cmd, "run"))
- return cmd_run(argc, argv);
- if (!strcmp(cmd, "stop"))
- return cmd_stop(argc, argv);
-#endif
-
- if (!strcmp(cmd, "unlock"))
- return cmd_unlock(argc, argv);
- if (!strcmp(cmd, "set-passphrase"))
- return cmd_set_passphrase(argc, argv);
- if (!strcmp(cmd, "remove-passphrase"))
- return cmd_remove_passphrase(argc, argv);
-
- if (!strcmp(cmd, "migrate"))
- return cmd_migrate(argc, argv);
- if (!strcmp(cmd, "migrate-superblock"))
- return cmd_migrate_superblock(argc, argv);
-
- if (!strcmp(cmd, "dump"))
- return cmd_dump(argc, argv);
-#ifndef BCACHEFS_NO_RUST
- if (!strcmp(cmd, "list"))
- return cmd_list(argc, argv);
-#endif
- if (!strcmp(cmd, "list_journal"))
- return cmd_list_journal(argc, argv);
- if (!strcmp(cmd, "kill_btree_node"))
- return cmd_kill_btree_node(argc, argv);
-
- if (!strcmp(cmd, "setattr"))
- return cmd_setattr(argc, argv);
-#ifndef BCACHEFS_NO_RUST
- if (!strcmp(cmd, "mount"))
- return cmd_mount(argc, argv);
- if (strstr(cmd, "completions"))
- return cmd_completions(argc, argv);
-#endif
-
-#ifdef BCACHEFS_FUSE
- if (!strcmp(cmd, "fusemount"))
- return cmd_fusemount(argc, argv);
-#endif
-
- if (!strcmp(cmd, "--help")) {
- usage();
- return 0;
- }
-
- printf("Unknown command %s\n", cmd);
-usage:
- usage();
- exit(EXIT_FAILURE);
-}