From a36c34289edada01e6447083046cb14a0489f6b9 Mon Sep 17 00:00:00 2001 From: Hubert Kario Date: Sun, 23 Jan 2011 13:42:43 +0100 Subject: [PATCH 04/28] add detailed help messages to btrfs command extend the btrfs --help command to print detailed help message if available but fallback to basic help message if detailed is unavailable add detailed help message for 'filesystem defragment' command little tweaks in comments Signed-off-by: Hubert Kario Signed-off-by: Hugo Mills --- btrfs.c | 96 ++++++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 65 insertions(+), 31 deletions(-) diff --git a/btrfs.c b/btrfs.c index 8e0975e..742dd27 100644 --- a/btrfs.c +++ b/btrfs.c @@ -23,6 +23,9 @@ #include "btrfs_cmds.h" #include "version.h" +#define BASIC_HELP 0 +#define ADVANCED_HELP 1 + typedef int (*CommandFunction)(int argc, char **argv); struct Command { @@ -31,8 +34,10 @@ struct Command { 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 */ + char *help; /* help lines; from the 2nd line onward they + are automatically indented */ + char *adv_help; /* advanced help message; from the 2nd line + onward they are automatically indented */ /* the following fields are run-time filled by the program */ char **cmds; /* array of subcommands */ @@ -47,68 +52,90 @@ static struct Command commands[] = { { do_clone, 2, "subvolume snapshot", " [/]\n" "Create a writable snapshot of the subvolume with\n" - "the name in the directory." + "the name in the directory.", + NULL }, { do_delete_subvolume, 1, "subvolume delete", "\n" - "Delete the subvolume ." + "Delete the subvolume .", + NULL }, { do_create_subvol, 1, "subvolume create", "[/]\n" "Create a subvolume in (or the current directory if\n" - "not passed)." + "not passed).", + NULL }, { do_subvol_list, 1, "subvolume list", "\n" - "List the snapshot/subvolume of a filesystem." + "List the snapshot/subvolume of a filesystem.", + NULL }, { do_set_default_subvol, 2, "subvolume set-default", " \n" "Set the subvolume of the filesystem which will be mounted\n" - "as default." + "as default.", + NULL }, { do_find_newer, 2, "subvolume find-new", " \n" - "List the recently modified files in a filesystem." + "List the recently modified files in a filesystem.", + NULL }, { do_defrag, -1, "filesystem defragment", "[-vf] [-c[zlib,lzo]] [-s start] [-l len] [-t size] | [|...]\n" - "Defragment a file or a directory." + "Defragment a file or a directory.", + "[-vcf] [-s start] [-l len] [-t size] | [|...]\n" + "Defragment file data or directory metadata.\n" + "-v be verbose\n" + "-c compress the file while defragmenting\n" + "-f flush data to disk immediately after defragmenting\n" + "-s start defragment only from byte onward\n" + "-l len defragment only up to len bytes\n" + "-t size minimal size of file to be considered for defragmenting\n" }, { do_fssync, 1, "filesystem sync", "\n" - "Force a sync on the filesystem ." + "Force a sync on the filesystem .", + NULL }, { 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." + "will occupe all available space on the device.", + NULL }, { do_show_filesystem, 999, "filesystem show", "[||