Refactor handling of --{ext,tla}-* flags (#212)

* Refactor handling of --{ext,tla}-* flags

* better helper function names for --{ext,tla}-* flags
This commit is contained in:
Marcelo Cantos 2018-03-12 07:44:59 +11:00 committed by Dave Cunningham
parent 405726fae2
commit d67779ed8d

View File

@ -203,6 +203,26 @@ func processArgs(givenArgs []string, config *config, vm *jsonnet.VM) (processArg
i++ i++
} }
handleVarVal := func(handle func(key string, val string)) error {
next := nextArg(&i, args)
name, content, err := getVarVal(next)
if err != nil {
return err
}
handle(name, content)
return nil
}
handleVarFile := func(handle func(key string, val string), imp string) error {
next := nextArg(&i, args)
name, content, err := getVarFile(next, imp)
if err != nil {
return err
}
handle(name, content)
return nil
}
for ; i < len(args); i++ { for ; i < len(args); i++ {
arg := args[i] arg := args[i]
if arg == "-h" || arg == "--help" { if arg == "-h" || arg == "--help" {
@ -242,61 +262,37 @@ func processArgs(givenArgs []string, config *config, vm *jsonnet.VM) (processArg
} }
config.evalJpath = append(config.evalJpath, dir) config.evalJpath = append(config.evalJpath, dir)
} else if arg == "-V" || arg == "--ext-str" { } else if arg == "-V" || arg == "--ext-str" {
next := nextArg(&i, args) if err := handleVarVal(vm.ExtVar); err != nil {
name, content, err := getVarVal(next)
if err != nil {
return processArgsStatusFailure, err return processArgsStatusFailure, err
} }
vm.ExtVar(name, content)
} else if arg == "--ext-str-file" { } else if arg == "--ext-str-file" {
next := nextArg(&i, args) if err := handleVarFile(vm.ExtCode, "importstr"); err != nil {
name, content, err := getVarFile(next, "importstr")
if err != nil {
return processArgsStatusFailure, err return processArgsStatusFailure, err
} }
vm.ExtCode(name, content)
} else if arg == "--ext-code" { } else if arg == "--ext-code" {
next := nextArg(&i, args) if err := handleVarVal(vm.ExtCode); err != nil {
name, content, err := getVarVal(next)
if err != nil {
return processArgsStatusFailure, err return processArgsStatusFailure, err
} }
vm.ExtCode(name, content)
} else if arg == "--ext-code-file" { } else if arg == "--ext-code-file" {
next := nextArg(&i, args) if err := handleVarFile(vm.ExtCode, "import"); err != nil {
name, content, err := getVarFile(next, "import")
if err != nil {
return processArgsStatusFailure, err return processArgsStatusFailure, err
} }
vm.ExtCode(name, content)
} else if arg == "-A" || arg == "--tla-str" { } else if arg == "-A" || arg == "--tla-str" {
next := nextArg(&i, args) if err := handleVarVal(vm.TLAVar); err != nil {
name, content, err := getVarVal(next)
if err != nil {
return processArgsStatusFailure, err return processArgsStatusFailure, err
} }
vm.TLAVar(name, content)
} else if arg == "--tla-str-file" { } else if arg == "--tla-str-file" {
next := nextArg(&i, args) if err := handleVarFile(vm.TLACode, "importstr"); err != nil {
name, content, err := getVarFile(next, "importstr")
if err != nil {
return processArgsStatusFailure, err return processArgsStatusFailure, err
} }
vm.TLACode(name, content)
} else if arg == "--tla-code" { } else if arg == "--tla-code" {
next := nextArg(&i, args) if err := handleVarVal(vm.TLACode); err != nil {
name, content, err := getVarVal(next)
if err != nil {
return processArgsStatusFailure, err return processArgsStatusFailure, err
} }
vm.TLACode(name, content)
} else if arg == "--tla-code-file" { } else if arg == "--tla-code-file" {
next := nextArg(&i, args) if err := handleVarFile(vm.TLACode, "import"); err != nil {
name, content, err := getVarFile(next, "import")
if err != nil {
return processArgsStatusFailure, err return processArgsStatusFailure, err
} }
vm.TLACode(name, content)
} else if arg == "-t" || arg == "--max-trace" { } else if arg == "-t" || arg == "--max-trace" {
l := safeStrToInt(nextArg(&i, args)) l := safeStrToInt(nextArg(&i, args))
if l < 0 { if l < 0 {