From 3a580ff122406285669ba16a27e0677c9d972871 Mon Sep 17 00:00:00 2001 From: Jan De Dobbeleer Date: Thu, 27 Jul 2023 13:19:15 +0200 Subject: [PATCH] feat(config): parse jsonc config files resolves #4097 --- src/engine/config.go | 11 ++++++++--- src/platform/shell.go | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/engine/config.go b/src/engine/config.go index f6be03a2efef..cc52b8f367ea 100644 --- a/src/engine/config.go +++ b/src/engine/config.go @@ -133,12 +133,17 @@ func loadConfig(env platform.Environment) *Config { cfg.origin = configFile cfg.Format = strings.TrimPrefix(filepath.Ext(configFile), ".") cfg.env = env - if cfg.Format == "yml" { + + // support different extensions + switch cfg.Format { + case "yml": cfg.Format = YAML + case "jsonc": + cfg.Format = JSON } - config.AddDriver(yaml.Driver) - config.AddDriver(json.Driver) + config.AddDriver(yaml.Driver.WithAliases("yaml", "yml")) + config.AddDriver(json.Driver.WithAliases("json", "jsonc")) config.AddDriver(toml.Driver) if config.Default().IsEmpty() { diff --git a/src/platform/shell.go b/src/platform/shell.go index 599ade2d309d..627e9c93a073 100644 --- a/src/platform/shell.go +++ b/src/platform/shell.go @@ -632,9 +632,10 @@ func (env *Shell) Flags() *Flags { func (env *Shell) Shell() string { defer env.Trace(time.Now()) - if env.CmdFlags.Shell != "" { + if len(env.CmdFlags.Shell) != 0 { return env.CmdFlags.Shell } + env.Debug("no shell name provided in flags, trying to detect it") pid := os.Getppid() p, _ := process.NewProcess(int32(pid)) name, err := p.Name()