From mboxrd@z Thu Jan 1 00:00:00 1970 From: Goffredo Baroncelli Subject: Re: [PATCH 2/2] add detailed help messages to btrfs command Date: Sun, 23 Jan 2011 15:07:09 +0100 Message-ID: <4D3C360D.3080400@libero.it> References: <201101231339.36599.kario@wit.edu.pl> <201101231342.43637.kario@wit.edu.pl> Reply-To: kreijack@inwind.it Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Cc: linux-btrfs@vger.kernel.org To: Hubert Kario Return-path: In-Reply-To: <201101231342.43637.kario@wit.edu.pl> List-ID: Hello Hubert, please update the man page too. Regards G.Baroncelli On 01/23/2011 01:42 PM, Hubert Kario wrote: > 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 > --- > btrfs.c | 101 ++++++++++++++++++++++++++++++++++++++++++-------------------- > 1 files changed, 68 insertions(+), 33 deletions(-) > > diff --git a/btrfs.c b/btrfs.c > index b84607a..bd6f6f8 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,73 +52,96 @@ 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_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", "[-vcf] [-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_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_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", "[|