Skip to content

Commit

Permalink
Refactor handling of --{ext,tla}-* flags (google#212)
Browse files Browse the repository at this point in the history
* Refactor handling of --{ext,tla}-* flags

* better helper function names for --{ext,tla}-* flags
  • Loading branch information
marcelocantos authored and sparkprime committed Mar 11, 2018
1 parent 405726f commit d67779e
Showing 1 changed file with 28 additions and 32 deletions.
60 changes: 28 additions & 32 deletions jsonnet/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,26 @@ func processArgs(givenArgs []string, config *config, vm *jsonnet.VM) (processArg
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++ {
arg := args[i]
if arg == "-h" || arg == "--help" {
Expand Down Expand Up @@ -242,61 +262,37 @@ func processArgs(givenArgs []string, config *config, vm *jsonnet.VM) (processArg
}
config.evalJpath = append(config.evalJpath, dir)
} else if arg == "-V" || arg == "--ext-str" {
next := nextArg(&i, args)
name, content, err := getVarVal(next)
if err != nil {
if err := handleVarVal(vm.ExtVar); err != nil {
return processArgsStatusFailure, err
}
vm.ExtVar(name, content)
} else if arg == "--ext-str-file" {
next := nextArg(&i, args)
name, content, err := getVarFile(next, "importstr")
if err != nil {
if err := handleVarFile(vm.ExtCode, "importstr"); err != nil {
return processArgsStatusFailure, err
}
vm.ExtCode(name, content)
} else if arg == "--ext-code" {
next := nextArg(&i, args)
name, content, err := getVarVal(next)
if err != nil {
if err := handleVarVal(vm.ExtCode); err != nil {
return processArgsStatusFailure, err
}
vm.ExtCode(name, content)
} else if arg == "--ext-code-file" {
next := nextArg(&i, args)
name, content, err := getVarFile(next, "import")
if err != nil {
if err := handleVarFile(vm.ExtCode, "import"); err != nil {
return processArgsStatusFailure, err
}
vm.ExtCode(name, content)
} else if arg == "-A" || arg == "--tla-str" {
next := nextArg(&i, args)
name, content, err := getVarVal(next)
if err != nil {
if err := handleVarVal(vm.TLAVar); err != nil {
return processArgsStatusFailure, err
}
vm.TLAVar(name, content)
} else if arg == "--tla-str-file" {
next := nextArg(&i, args)
name, content, err := getVarFile(next, "importstr")
if err != nil {
if err := handleVarFile(vm.TLACode, "importstr"); err != nil {
return processArgsStatusFailure, err
}
vm.TLACode(name, content)
} else if arg == "--tla-code" {
next := nextArg(&i, args)
name, content, err := getVarVal(next)
if err != nil {
if err := handleVarVal(vm.TLACode); err != nil {
return processArgsStatusFailure, err
}
vm.TLACode(name, content)
} else if arg == "--tla-code-file" {
next := nextArg(&i, args)
name, content, err := getVarFile(next, "import")
if err != nil {
if err := handleVarFile(vm.TLACode, "import"); err != nil {
return processArgsStatusFailure, err
}
vm.TLACode(name, content)
} else if arg == "-t" || arg == "--max-trace" {
l := safeStrToInt(nextArg(&i, args))
if l < 0 {
Expand Down

0 comments on commit d67779e

Please sign in to comment.