Skip to content

Commit d67779e

Browse files
marcelocantossparkprime
authored andcommitted
Refactor handling of --{ext,tla}-* flags (google#212)
* Refactor handling of --{ext,tla}-* flags * better helper function names for --{ext,tla}-* flags
1 parent 405726f commit d67779e

File tree

1 file changed

+28
-32
lines changed

1 file changed

+28
-32
lines changed

jsonnet/cmd.go

Lines changed: 28 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,26 @@ func processArgs(givenArgs []string, config *config, vm *jsonnet.VM) (processArg
203203
i++
204204
}
205205

206+
handleVarVal := func(handle func(key string, val string)) error {
207+
next := nextArg(&i, args)
208+
name, content, err := getVarVal(next)
209+
if err != nil {
210+
return err
211+
}
212+
handle(name, content)
213+
return nil
214+
}
215+
216+
handleVarFile := func(handle func(key string, val string), imp string) error {
217+
next := nextArg(&i, args)
218+
name, content, err := getVarFile(next, imp)
219+
if err != nil {
220+
return err
221+
}
222+
handle(name, content)
223+
return nil
224+
}
225+
206226
for ; i < len(args); i++ {
207227
arg := args[i]
208228
if arg == "-h" || arg == "--help" {
@@ -242,61 +262,37 @@ func processArgs(givenArgs []string, config *config, vm *jsonnet.VM) (processArg
242262
}
243263
config.evalJpath = append(config.evalJpath, dir)
244264
} else if arg == "-V" || arg == "--ext-str" {
245-
next := nextArg(&i, args)
246-
name, content, err := getVarVal(next)
247-
if err != nil {
265+
if err := handleVarVal(vm.ExtVar); err != nil {
248266
return processArgsStatusFailure, err
249267
}
250-
vm.ExtVar(name, content)
251268
} else if arg == "--ext-str-file" {
252-
next := nextArg(&i, args)
253-
name, content, err := getVarFile(next, "importstr")
254-
if err != nil {
269+
if err := handleVarFile(vm.ExtCode, "importstr"); err != nil {
255270
return processArgsStatusFailure, err
256271
}
257-
vm.ExtCode(name, content)
258272
} else if arg == "--ext-code" {
259-
next := nextArg(&i, args)
260-
name, content, err := getVarVal(next)
261-
if err != nil {
273+
if err := handleVarVal(vm.ExtCode); err != nil {
262274
return processArgsStatusFailure, err
263275
}
264-
vm.ExtCode(name, content)
265276
} else if arg == "--ext-code-file" {
266-
next := nextArg(&i, args)
267-
name, content, err := getVarFile(next, "import")
268-
if err != nil {
277+
if err := handleVarFile(vm.ExtCode, "import"); err != nil {
269278
return processArgsStatusFailure, err
270279
}
271-
vm.ExtCode(name, content)
272280
} else if arg == "-A" || arg == "--tla-str" {
273-
next := nextArg(&i, args)
274-
name, content, err := getVarVal(next)
275-
if err != nil {
281+
if err := handleVarVal(vm.TLAVar); err != nil {
276282
return processArgsStatusFailure, err
277283
}
278-
vm.TLAVar(name, content)
279284
} else if arg == "--tla-str-file" {
280-
next := nextArg(&i, args)
281-
name, content, err := getVarFile(next, "importstr")
282-
if err != nil {
285+
if err := handleVarFile(vm.TLACode, "importstr"); err != nil {
283286
return processArgsStatusFailure, err
284287
}
285-
vm.TLACode(name, content)
286288
} else if arg == "--tla-code" {
287-
next := nextArg(&i, args)
288-
name, content, err := getVarVal(next)
289-
if err != nil {
289+
if err := handleVarVal(vm.TLACode); err != nil {
290290
return processArgsStatusFailure, err
291291
}
292-
vm.TLACode(name, content)
293292
} else if arg == "--tla-code-file" {
294-
next := nextArg(&i, args)
295-
name, content, err := getVarFile(next, "import")
296-
if err != nil {
293+
if err := handleVarFile(vm.TLACode, "import"); err != nil {
297294
return processArgsStatusFailure, err
298295
}
299-
vm.TLACode(name, content)
300296
} else if arg == "-t" || arg == "--max-trace" {
301297
l := safeStrToInt(nextArg(&i, args))
302298
if l < 0 {

0 commit comments

Comments
 (0)