[root@localhost ~]# rm --help
Usage: rm [OPTION]... FILE...
Remove (unlink) the FILE(s).
  -f, --force           ignore nonexistent files, never prompt
  -r, -R, --recursive   remove directories and their contents recursively
  -v, --verbose         explain what is being done
  ...
By default, rm does not remove directories.  Use the --recursive (-r or -R)
option to remove each listed directory, too, along with all of its contents.
To remove a file whose name starts with a `-', for example `-foo',
...

Example for linux command rm help info as above, we can see the struct of 
this page is exactly summary+usage+details
As you said, you can use two flags to initialize the same variable, but how 
can you tell users  -v/--verbose is the same one by std.flag ?
Since linux command usage has clearly tell us -v is an abbreviation for 
--verbose

So, what I did is trying to get close to the convention usage.

在 2016年8月19日星期五 UTC+8上午12:03:45,Hotei写道:
>
> I assume you're aware it's valid to have two initializers for the same 
> variable.?  I often use -v and -verbose to both modify flagVerbose.
>
> var flagVerbose bool
>
> func init() {
> boolVar(&flagVerbose,"v" ....
> boolVar(&flagVerbose "verbose" ....
>
> }
>
> Other than that I don't see what your package is actually enhancing over 
> the current flag package.  Could you please explain what advantage(s) you 
> believe you are providing.  You might also want to re-visit the "usage" 
> function convention since that's pretty easy to use to accomplish the 
> "enough information" part.
>
> On Thursday, August 18, 2016 at 6:11:35 AM UTC-4, Ally Dale wrote:
>>
>> Hi, everyone,
>>     I have create a package named cmdline to extend std.flag based on Go 
>> src v1.7
>>     Then, we can make a command usage page more easily and with enough 
>> information.
>>
>>     So, I wonder if the Go authors can merge this change into std.flag, 
>> to help gophers make a command line page more conveniently?
>>
>>     You can find the project here: http://github.com/vipally/cmdline
>>
>>     This is the main change:
>>
>>     1. Add LogicName and Required field for every flag, and modify the flag 
>> define interface
>>
>>   2. Add Summary and Details for command line info
>>
>>   3. Add interface GetUsage() string
>>
>>   4. Modify the Parse() logic
>>
>>
>> //usage of cmdline as follow
>>
>> import (
>>
>>     "github.com/vipally/cmdline"
>>
>> )
>>
>> func main() {
>>
>>     cmdline.Summary("command copy is used to copy a file to another path.")
>>
>>     cmdline.Details(`Command copy is used to copy a file to another path.
>>
>>     If the destnation file is exist, default ask for if will cover it.
>>
>>     If flag -y used, it will cover the destnation file without ask.
>>
>>     If flag -n used, it will not cover the destnation file without ask.
>>
>> `)
>>
>>     cmdline.String("s", "src", ".", true, "source file path")
>>
>>     cmdline.String("d", "dst", ".", true, "destnation file path")
>>
>>     cmdline.Bool("c", "cover", false, false, "if cover the destnation file")
>>
>>     cmdline.Bool("y", "yes", false, false, "if auto select yes when ask for 
>> cover")
>>
>>     cmdline.Bool("n", "no", false, false, "if auto select no when ask for 
>> cover")
>>
>>     cmdline.Parse()
>>
>>
>>         //[error] require but lack of flag -s=<src>
>>
>>     //Usage of [copy.exe]:
>>
>>     //  Summary:
>>
>>     //    command copy is used to copy a file to another path
>>
>>     //
>>
>>     //  Usage:
>>
>>     //    copy.exe [-c=<cover>] -d=<dst> [-n=<no>] -s=<src> [-y=<yes>]
>>
>>     //  -c=<cover>
>>
>>     //      if cover the destnation file
>>
>>     //  -d=<dst>  required  string (default ".")
>>
>>     //      destination file path
>>
>>     //  -n=<no>    if auto select no when ask for cover
>>
>>     //  -s=<src>  required  string (default ".")
>>
>>     //      source file path
>>
>>     //  -y=<yes>
>>
>>     //      if auto select yes when ask for cover
>>
>>     //
>>
>>     //  Details:
>>
>>     //    Command copy is used to copy a file to another path.
>>
>>     //    If the destnation file is exist, default ask for if will cover it.
>>
>>     //    If flag -y used, it will cover the destnation file without ask.
>>
>>     //    If flag -n used, it will not cover the destnation file without ask.
>>
>> }
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to