@@ -10,11 +10,11 @@ import (
1010 "strings"
1111)
1212
13- var cliCmd * goNixArgParser. Command
13+ var cliCmd = NewCliCmd ()
1414
15- func init () {
16- cliCmd = goNixArgParser .NewSimpleCommand (os .Args [0 ], "Simple command line based HTTP file server to share local file system" )
17- options := cliCmd .Options ()
15+ func NewCliCmd () * goNixArgParser. Command {
16+ cmd : = goNixArgParser .NewSimpleCommand (os .Args [0 ], "Simple command line based HTTP file server to share local file system" )
17+ options := cmd .Options ()
1818 var opt goNixArgParser.Option
1919
2020 // define option
@@ -193,11 +193,13 @@ func init() {
193193
194194 err = options .AddFlags ("help" , []string {"-h" , "--help" }, "" , "print this help" )
195195 serverError .CheckFatal (err )
196+
197+ return cmd
196198}
197199
198- func ParseFromArgs ( args []string ) (params []* Param , printVersion , printHelp bool , errs []error ) {
200+ func ArgsToCmdResults ( cmd * goNixArgParser. Command , args []string ) (results []* goNixArgParser. ParseResult , printVersion , printHelp bool , errs []error ) {
199201 // parse option
200- results := cliCmd .ParseGroups (args , nil )
202+ results = cmd .ParseGroups (args , nil )
201203
202204 // pre-check
203205 for _ , result := range results {
@@ -273,6 +275,10 @@ func ParseFromArgs(args []string) (params []*Param, printVersion, printHelp bool
273275 }
274276 }
275277
278+ return
279+ }
280+
281+ func CmdResultsToParams (results []* goNixArgParser.ParseResult ) (params []* Param , errs []error ) {
276282 // init param data
277283 params = make ([]* Param , 0 , len (results ))
278284 for _ , result := range results {
@@ -413,7 +419,15 @@ func ParseFromArgs(args []string) (params []*Param, printVersion, printHelp bool
413419}
414420
415421func ParseFromCli () (params []* Param , printVersion , printHelp bool , errs []error ) {
416- return ParseFromArgs (os .Args )
422+ var cmdResults []* goNixArgParser.ParseResult
423+
424+ cmdResults , printVersion , printHelp , errs = ArgsToCmdResults (cliCmd , os .Args )
425+ if printVersion || printHelp || len (errs ) > 0 {
426+ return
427+ }
428+
429+ params , errs = CmdResultsToParams (cmdResults )
430+ return
417431}
418432
419433func PrintHelp () {
0 commit comments