static const char btrfs_cmd_group_info[] =
"Use --help as an argument for information on a specific group or command.";
-char argv0_buf[ARGV0_BUF_SIZE] = "btrfs";
+static char argv0_buf[ARGV0_BUF_SIZE] = "btrfs";
static inline const char *skip_prefix(const char *str, const char *prefix)
{
return cmd;
}
-void handle_help_options_next_level(const struct cmd_struct *cmd,
- int argc, char **argv)
+static void handle_help_options_next_level(const struct cmd_struct *cmd,
+ int argc, char **argv)
{
if (argc < 2)
return;
return 0;
}
-const struct cmd_group btrfs_cmd_group;
+static const struct cmd_group btrfs_cmd_group;
static const char * const cmd_help_usage[] = {
"btrfs help [--full]",
- "Dislay help information",
+ "Display help information",
"",
"--full display detailed help on every command",
NULL
return (*argv) - orig_argv;
}
-const struct cmd_group btrfs_cmd_group = {
+static const struct cmd_group btrfs_cmd_group = {
btrfs_cmd_group_usage, btrfs_cmd_group_info, {
{ "subvolume", cmd_subvolume, NULL, &subvolume_cmd_group, 0 },
{ "filesystem", cmd_filesystem, NULL, &filesystem_cmd_group, 0 },
{ "device", cmd_device, NULL, &device_cmd_group, 0 },
{ "scrub", cmd_scrub, NULL, &scrub_cmd_group, 0 },
{ "check", cmd_check, cmd_check_usage, NULL, 0 },
+ { "rescue", cmd_rescue, NULL, &rescue_cmd_group, 0 },
+ { "restore", cmd_restore, cmd_restore_usage, NULL, 0 },
{ "inspect-internal", cmd_inspect, NULL, &inspect_cmd_group, 0 },
{ "send", cmd_send, cmd_send_usage, NULL, 0 },
{ "receive", cmd_receive, cmd_receive_usage, NULL, 0 },
{ "replace", cmd_replace, NULL, &replace_cmd_group, 0 },
{ "help", cmd_help, cmd_help_usage, NULL, 0 },
{ "version", cmd_version, cmd_version_usage, NULL, 0 },
- { 0, 0, 0, 0, 0 }
+ NULL_CMD_STRUCT
},
};
int main(int argc, char **argv)
{
const struct cmd_struct *cmd;
+ const char *bname;
- crc32c_optimization_init();
+ if ((bname = strrchr(argv[0], '/')) != NULL)
+ bname++;
+ else
+ bname = argv[0];
- argc--;
- argv++;
- handle_options(&argc, &argv);
- if (argc > 0) {
- if (!prefixcmp(argv[0], "--"))
- argv[0] += 2;
+ if (!strcmp(bname, "btrfsck")) {
+ argv[0] = "check";
} else {
- usage_command_group(&btrfs_cmd_group, 0, 0);
- exit(1);
+ argc--;
+ argv++;
+ handle_options(&argc, &argv);
+ if (argc > 0) {
+ if (!prefixcmp(argv[0], "--"))
+ argv[0] += 2;
+ } else {
+ usage_command_group(&btrfs_cmd_group, 0, 0);
+ exit(1);
+ }
}
cmd = parse_command_token(argv[0], &btrfs_cmd_group);
handle_help_options_next_level(cmd, argc, argv);
+ crc32c_optimization_init();
+
fixup_argv0(argv, cmd->token);
exit(cmd->fn(argc, argv));
}