From d67779ed8df9044f6f88d08bfbd2cb079218b2e6 Mon Sep 17 00:00:00 2001 From: Marcelo Cantos Date: Mon, 12 Mar 2018 07:44:59 +1100 Subject: [PATCH] Refactor handling of --{ext,tla}-* flags (#212) * Refactor handling of --{ext,tla}-* flags * better helper function names for --{ext,tla}-* flags --- jsonnet/cmd.go | 60 +++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/jsonnet/cmd.go b/jsonnet/cmd.go index 5fe900c..d3b380c 100644 --- a/jsonnet/cmd.go +++ b/jsonnet/cmd.go @@ -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" { @@ -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 {