X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=btrfs.c;h=2d39f2ced3e81b3d425b12971306df76495583d6;hb=58fae8ff58b973737326882ca1f5a410a70f1f03;hp=1b4f4039e0f6a62e05e270284d6dc8710af87ee0;hpb=a418b24318723c0a45fe1f1b76b9286baa36c537;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/btrfs.c b/btrfs.c index 1b4f403..2d39f2c 100644 --- a/btrfs.c +++ b/btrfs.c @@ -14,374 +14,294 @@ * Boston, MA 021110-1307, USA. */ -#define _GNU_SOURCE #include #include #include +#include -#include "kerncompat.h" -#include "btrfs_cmds.h" -#include "version.h" +#include "volumes.h" +#include "crc32c.h" +#include "commands.h" +#include "utils.h" +#include "help.h" -typedef int (*CommandFunction)(int argc, char **argv); - -struct Command { - CommandFunction func; /* function which implements the command */ - int nargs; /* if == 999, any number of arguments - if >= 0, number of arguments, - if < 0, _minimum_ number of arguments */ - char *verb; /* verb */ - char *help; /* help lines; form the 2nd onward they are - indented */ - - /* the following fields are run-time filled by the program */ - char **cmds; /* array of subcommands */ - int ncmds; /* number of subcommand */ +static const char * const btrfs_cmd_group_usage[] = { + "btrfs [--help] [--version] [...] []", + NULL }; -static struct Command commands[] = { +static const char btrfs_cmd_group_info[] = + "Use --help as an argument for information on a specific group or command."; - /* - avoid short commands different for the case only - */ - { do_clone, 2, - "subvolume snapshot", " [/]\n" - "Create a writable snapshot of the subvolume with\n" - "the name in the directory." - }, - { do_delete_subvolume, 1, - "subvolume delete", "\n" - "Delete the subvolume ." - }, - { do_create_subvol, 1, - "subvolume create", "[/]\n" - "Create a subvolume in (or the current directory if\n" - "not passed)." - }, - { do_subvol_list, 1, "subvolume list", "\n" - "List the snapshot/subvolume of a filesystem." - }, - { do_find_newer, 2, "subvolume find-new", " \n" - "List the recently modified files in a filesystem." - }, - { do_defrag, -1, - "filesystem defragment", "[-vf] [-c[zlib,lzo]] [-s start] [-l len] [-t size] | [|...]\n" - "Defragment a file or a directory." - }, - { do_set_default_subvol, 2, - "subvolume set-default", " \n" - "Set the subvolume of the filesystem which will be mounted\n" - "as default." - }, - { do_fssync, 1, - "filesystem sync", "\n" - "Force a sync on the filesystem ." - }, - { do_resize, 2, - "filesystem resize", "[+/-][gkm]|max \n" - "Resize the file system. If 'max' is passed, the filesystem\n" - "will occupe all available space on the device." - }, - { do_show_filesystem, 999, - "filesystem show", "[|