X-Git-Url: http://git.tuebingen.mpg.de/?p=adu.git;a=blobdiff_plain;f=select.ggo;h=e8a5f95dffa2f0fe8d0fea2223d9599a296c38b6;hp=f4d090b1e05bf6f9f72adca3b322f32b81c33373;hb=de525e7c5b6592b41f8681f919d5d53406801861;hpb=f1d5eaac818cdf932498c402671bef135bff3812 diff --git a/select.ggo b/select.ggo index f4d090b..e8a5f95 100644 --- a/select.ggo +++ b/select.ggo @@ -27,35 +27,36 @@ details=" option "no-headers" - #~~~~~~~~~~~~~~~~~~~~ -"supress descriptions for listings/tables" +"supress descriptions for listings/summaries" flag off details=" This is mostly useful to feed the output of adu to scripts. " -option "sort" s -#~~~~~~~~~~~~~~~ -"how to sort the output" +option "select-mode" m +#~~~~~~~~~~~~~~~~~~~~~ +"How to print the results of the query" enum typestr="" -values="sizes","files","unsorted" -default="sizes" +values="global_list","global_summary","user_list","user_summary" +default="global_list" optional details=" - Sort by file size, file count or unsorted. + global_list: List of directories, regardless of owner. + global_summary: Only print totals. + user_list: Print a list for each admissible uid. + user_summary Print totals for each admissible uid. " -option "format" f -#~~~~~~~~~~~~~~~~~ -"how to format the output" -string typestr="" +option "list-sort" s +#~~~~~~~~~~~~~~~~~~~ +"how to sort the user list or the global list" +enum typestr="" +values="size","file_count" +default="size" optional details=" - %(basedir) -- the path given to --base-dir during create - %(dir) -- the name of the directory - %(dir_size) -- the size of the sum of all regular files in this directory - %(num_files) -- the number of regular files in this directory - %% -- interpolates to % - %xx -- interpolates to the character with hex code xx + This option is ignored if select-mode is neither \"user_list\", nor + \"global_list\". " option "output" o @@ -68,34 +69,6 @@ details=" If empty, or not given, use stdout. " -option "size-unit" - -#~~~~~~~~~~~~~~~~~~~ -"select output format for sizes" -enum typestr="format" -values="h","b","k","m","g","t" -default="h" -optional -details=" - Print sizes in the given unit: human-readable, bytes, - kilobytes (2^10), megabytes (2^20), gigabytes (2^30), terabytes - (2^40). The default is \"h\", i.e. human-readable. -" - -option "count-unit" - -#~~~~~~~~~~~~~~~~~~~~ -"select output format for counted values" -enum typestr="format" -values="h","n","k","m","g","t" -default="h" -optional -details=" - Print the number of files/directories in the given unit: - human-readable, number, number/10^3, number/10^6, number/10^12, - number/10^15. The default is to print numbers in human-readable - format. -" - - option "user-summary-sort" - #~~~~~~~~~~~~~~~~~~~~~~~~~~~ "how to sort the user-summary" @@ -108,43 +81,6 @@ details=" e.g. \"--user-summary-sort f\" sorts by file count. " -option "no-user-summary" - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~ -"do not print the user summary table" -flag off - - -option "user-list" - -#~~~~~~~~~~~~~~~~~~~ -"how to print per-user directory listings" -enum typestr="which" -values="size","file_count","both","none" -default="both" -optional -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-global-summary" - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~ -"do not print the summary line" -flag off - -option "global-list" - -#~~~~~~~~~~~~~~~~~~~~~ -"how to print global directory listings" -enum typestr="which" -values="size","file_count","both","none" -default="both" -optional -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 "print-base-dir" - #~~~~~~~~~~~~~~~~~~~~~~~~ "whether to include the base-dir in the output" @@ -154,3 +90,95 @@ details=" with the base directory. The default is to print paths relative to the base dir. " + +option "format" f +#~~~~~~~~~~~~~~~~ +"How to format the output" +string typestr="" +optional +details=" + A string that specifies how the output of the select query is + goint to be formated. Depending on the chosen select-mode, + several conversion specifiers are available and a different + default value for this option applies. + + adu knows four different types of directives: string, id, + count and size. These are explained in more detail below. + + The general syntax for string and id directives is %(name:a:w) + where \"name\" is the name of the directive, \"a\" specifies + the alignment and \"w\" is the width specifier which allows + to give a field width. + + The alignment specifier is a single character: Either \"l\", + \"r\", or \"c\" may be given to specify left, right and + centered alignment respectively. The with specifier is a + positive integer. Both \"a\" and \"w\" are optional. + + A string directive supported by adu is \"dirname\" which is + subsitituted by the name of the directory. It is available + if either user_list or global_list mode was selected via + --select-mode. + + Examples: + + \"%(diname)\" # print dirname without any padding + \"%(dirname:c:20)\" # center dirname in a 20 chars wide field + + The other two types of directives, count and size, are used + for numbers. The syntax for these is %(name:a:w:u). The \"a\" + and the \"w\" specifier have the same meaning as for the string + and id directives. The additional \"u\" specifier selects a unit + in which the number that corresponds to the directive should + be formated. All three specifiers are optional. + + Possible units are the characters of the set \" bkmgtBKMGT\" + specifying bytes, kilobytes, megabytes, gigabytes and + terabytes respectively. The difference between the lower and + the upper case variants is that the lower case specifiers + select 1024-based units while the upper case specifiers use + 1000 as the basis. + + The whitespace character is like \"b\", but a space character + is printed instead of a unit. + + Two more characters \"h\" and \"H\" (human-readable) are also + available that choose an appropriate unit depending on the + size of the number being printed. + + An asterisk prepended to the unit specifier prevents the + unit from being printed. This is useful mainly for feeding + the output of adu to scripts that do not expect units. + + In order to print a percent sign, use \"%%\". Moreover, adu + understands \"\n\" and \"\t\" and outputs a newline and a + tab character for these combinations respectively. + + Examples: + + \"%(size:r::G)\" # print size in gigabytes right-aligned + \"%(size:r5::G)\" # as before, but use 5 char wide field + \"%(size:r5::*G)\" # as before, but supress trailing \"G\" + + List of directives and types known to adu, together with their types: + + name type meaning + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + pw_name string user name + uid id user id + files count number of files + dirname string name of the directory + size size total size/ directory size + dirs count number of directories + + Not all directives are available for each mode: + + name available in directives + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + pw_name user_list, user_summary + uid user_list, user_summary + files everywhere + dirname user_list, global_list + size everywhere + dirs suer_summary, global_summary +"