Skip to content

Commit deba2cb

Browse files
committed
Clean up options handling, fix warnings
1 parent 0361ba4 commit deba2cb

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

cmd/pkl-gen-go/pkl-gen-go.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ var (
127127
printVersion bool
128128
)
129129

130-
// The version of pkl-gen-go.
130+
// The Version of pkl-gen-go.
131131
//
132132
// This gets replaced by ldflags when built through CI,
133133
// or by init when installed via go install.
@@ -230,21 +230,26 @@ func (args *cliArgs) parse(arguments []string) error {
230230
return nil
231231
}
232232

233+
// Translates the cli arguments to an configuration closure for the evaluator evaluating `generator-settings.pkl`.
234+
func (args *cliArgs) loadGeneratorSettingsOptions() func(opts *pkl.EvaluatorOptions) {
235+
return func(opts *pkl.EvaluatorOptions) {
236+
if args.cacheDir != "" {
237+
opts.CacheDir = args.cacheDir
238+
}
239+
}
240+
}
241+
233242
// Loads the settings for controlling codegen.
234243
// Uses a Pkl evaluator that is separate from what's used for actually running codegen.
235244
func (args *cliArgs) loadGeneratorSettings() (*generatorsettings.GeneratorSettings, error) {
236245
projectDir := findProjectDir(args.projectDir)
237246
var evaluator pkl.Evaluator
238247
var err error
239-
opts := func(opts *pkl.EvaluatorOptions) {
240-
if args.cacheDir != "" {
241-
opts.CacheDir = args.cacheDir
242-
}
243-
}
248+
244249
if projectDir != "" {
245-
evaluator, err = pkl.NewProjectEvaluator(context.Background(), projectDir, pkl.PreconfiguredOptions, opts)
250+
evaluator, err = pkl.NewProjectEvaluator(context.Background(), projectDir, pkl.PreconfiguredOptions, args.loadGeneratorSettingsOptions())
246251
} else {
247-
evaluator, err = pkl.NewEvaluator(context.Background(), pkl.PreconfiguredOptions, opts)
252+
evaluator, err = pkl.NewEvaluator(context.Background(), pkl.PreconfiguredOptions, args.loadGeneratorSettingsOptions())
248253
}
249254
if err != nil {
250255
panic(err)
@@ -296,11 +301,8 @@ func (args *cliArgs) resolvePrecedence(settings *generatorsettings.GeneratorSett
296301
*settings.ProjectDir = args.projectDir
297302
}
298303
if args.cacheDir != "" {
299-
normalized, err := filepath.Abs(args.cacheDir)
300-
if err != nil {
301-
return err
302-
}
303-
settings.CacheDir = &normalized
304+
// Not normalized to absolute path, for hermetic build systems
305+
settings.CacheDir = &args.cacheDir
304306
}
305307
settings.DryRun = args.dryRun
306308
return nil

0 commit comments

Comments
 (0)