llcppsymg & llcppsigfetch parse args
This commit is contained in:
51
chore/_xtool/llcppsymg/args/args.go
Normal file
51
chore/_xtool/llcppsymg/args/args.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package args
|
||||
|
||||
import "strings"
|
||||
|
||||
type Args struct {
|
||||
Help bool
|
||||
Verbose bool
|
||||
UseStdin bool
|
||||
CfgFile string
|
||||
}
|
||||
|
||||
func ParseArgs(args []string, swflags map[string]bool) (*Args, []string) {
|
||||
result := &Args{}
|
||||
filteredArgs := []string{}
|
||||
for i := 0; i < len(args); i++ {
|
||||
arg := args[i]
|
||||
if strings.HasPrefix(arg, "-") {
|
||||
switch arg {
|
||||
case "-h", "--help":
|
||||
result.Help = true
|
||||
continue
|
||||
case "-v":
|
||||
result.Verbose = true
|
||||
continue
|
||||
case "-":
|
||||
result.UseStdin = true
|
||||
continue
|
||||
default:
|
||||
if hasArg, ok := swflags[arg]; ok {
|
||||
if hasArg {
|
||||
filteredArgs = append(filteredArgs, arg)
|
||||
for i+1 < len(args) && !strings.HasPrefix(args[i+1], "-") {
|
||||
filteredArgs = append(filteredArgs, args[i+1])
|
||||
i++
|
||||
}
|
||||
continue
|
||||
}
|
||||
}
|
||||
filteredArgs = append(filteredArgs, arg)
|
||||
}
|
||||
} else if result.CfgFile == "" {
|
||||
result.CfgFile = arg
|
||||
} else {
|
||||
filteredArgs = append(filteredArgs, arg)
|
||||
}
|
||||
}
|
||||
if result.CfgFile == "" {
|
||||
result.CfgFile = "llcppg.cfg"
|
||||
}
|
||||
return result, filteredArgs
|
||||
}
|
||||
Reference in New Issue
Block a user