Move --size-unit and --count-unit from adu.ggo to select.ggo.
[adu.git] / adu.ggo
diff --git a/adu.ggo b/adu.ggo
index 2a7cee97a5d55bc401503e1dfb3ccfdb3f79ce5b..55e5c5aaeb7c4e63de6342c9257cb2e72e91ed7b 100644 (file)
--- a/adu.ggo
+++ b/adu.ggo
@@ -3,7 +3,6 @@
 # Licensed under the GPL v2. For licencing details see COPYING.
 
 package "adu"
-version "0.0.1"
 purpose "advanced disk usage
 
 adu creates a database containing disk usage statistics of a given
@@ -50,25 +49,6 @@ details="
        goes to stdout. Lower values mean more verbose logging.
 "
 
-option "uid" u
-#~~~~~~~~~~~~~
-"user id(s) to take into account"
-string typestr="uid_spec"
-optional
-multiple
-details="
-       An uid specifier may be a single number, or a range of uids.
-       Example:
-
-       --uid 42    # only consider uid 42
-       --uid 42-   # only consider uids greater or equal than 42
-       --uid 23-42 # only consider uids between 23 and 42, inclusively.
-
-       This option may be given multiple times. An uid is taken into
-       account if it satisfies at least one --uid option.
-"
-
-
 option "paths" p
 #~~~~~~~~~~~~~~~
 "files to take into account"
@@ -89,7 +69,7 @@ section "Modes"
 defgroup "mode"
 #==============
 groupdesc="
-       adu may started in one of two possible modes, each of which
+       adu may be started in one of two possible modes, each of which
        corresponds to a different command line option. Exactly one
        of these options must be given.
 
@@ -107,6 +87,14 @@ details="
        that directory.
 "
 
+groupoption "interactive" I
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"activate interactive mode"
+group="mode"
+details="
+       In this mode, adu reads commands from stdin.
+"
+
 groupoption "select" S
 #~~~~~~~~~~~~~~~~~~~~~
 "query a database previously created with --create"
@@ -125,41 +113,124 @@ option "base-dir" b
 "directory to traverse"
 string typestr="path"
 dependon="create"
-required
+optional
+details="
+       The base directory to be traversed recursively. Must be
+       given if --create mode was selected. A warning message is
+       printed for each subdirectory that could not be read because
+       of insufficient permission. These directories will be ignored
+       when computing statistics.
+"
+
+option "one-file-system" x
+#~~~~~~~~~~~~~~~~~~~~~~~~~
+"do not dive into other file systems"
+flag off
+dependon="create"
 details="
-       The base directory to be traversed recursively. A warning
-       message is printed for each subdirectory that could not be
-       read because of insufficient permission. These directories
-       will be ignored when computing statistics.
+       Skip directories that are on different filesystems from the
+       one that the argument being processed is on.
 "
 
+option "hash-table-bits" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~
+"specify the size of the uid hash table"
+int typestr="num"
+dependon="create"
+default="10"
+optional
+details="
+       Use a hash table of size 2^num for the uid entries. If more than
+       2^num different uids own at least one regular file under base-dir,
+       the command fails. Increase this value if you have more than 1024
+       users. Decreasing the value causes adu to use slightly less memory.
+"
 
 ##############################
 section "Options for --select"
 ##############################
 
-option "limit" L
-#~~~~~~~~~~~~~~~
-"Limit output"
-int  typestr="num"
-default="-1"
+option "select-options" s
+#~~~~~~~~~~~~~~~~~~~~~~~~~
+"options for select mode"
+string typestr="<options>"
 optional
 dependon="select"
 details="
-       Only print num lines of output. If negative (the default),
-       print all lines.
+       Try --select-options \"-h\"
 "
 
-option "units" U
-#~~~~~~~~~~~~~~~
-"select numerical output format"
-string typestr="format"
+option "print-base-dir" -
+#~~~~~~~~~~~~~~~~~~~~~~~~
+"whether to include the base-dir in the output"
+flag off
+details="
+       If this flag is given, all directories printed are prefixed
+       with the base directory. The default is to print paths relative
+       to the base dir.
+"
+
+option "no-headers" -
+#~~~~~~~~~~~~~~~~~~~~
+"supress descriptions for listings/tables"
+flag off
+dependon="select"
+details="
+       This is mostly useful to feed the output of adu to scripts.
+"
+
+option "global-list" -
+#~~~~~~~~~~~~~~~~~~~~~
+"how to print global directory listings"
+enum typestr="which"
+values="size","file_count","both","none"
+default="both"
 optional
+dependon="select"
+details="
+       By default adu prints two global directory listings: The
+       first prints the directory names ordered by the sum of the
+       sizes of the contained files while the second listing prints
+       them sorted by the number of files. This option can be used
+       to print only one or neither of these two listings.
+"
+
+option "no-global-summary" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"do not print the summary line"
+flag off
+dependon="select"
+
+option "user-list" -
+#~~~~~~~~~~~~~~~~~~~
+"how to print per-user directory listings"
+enum typestr="which"
+values="size","file_count","both","none"
+default="both"
+optional
+dependon="select"
+details="
+       Similar to the global directory listings mentioned above,
+       adu can print two directory listings per user. This option
+       controls which of the these should be printed.
+"
+
+option "no-user-summary" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"do not print the user summary table"
+flag off
+dependon="select"
+
+
+option "user-summary-sort" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"how to sort the user-summary"
+enum typestr="col_spec"
+values="name","uid","dir_count","file_count","size"
+default="size"
+optional
+dependon="select"
 details="
-       Print the number of files/directories and the sizes in
-       the given format.  All  sizes  are output in these units:
-       (h)uman-readable, (b)ytes, (k)ilobytes, (m)egabytes,
-       (g)igabytes, (t)erabytes.  Capitalise to use multiples
-       of 1000 (S.I.) instead of 1024. The default is \"h\",
-       i.e. human-readable.
+       It is enough to specify the first letter of the column specifier,
+       e.g. \"--user-summary-sort f\" sorts by file count.
 "