diff --git a/cmd/app/main.go b/cmd/app/main.go index 6171a27a..4cb711ba 100644 --- a/cmd/app/main.go +++ b/cmd/app/main.go @@ -7,6 +7,7 @@ package main import ( "context" "errors" + "io" "log" "os" "os/exec" @@ -134,14 +135,32 @@ func main() { } var config *hst.Config + var r io.Reader f, err := os.Open(base.Append("app", args[0]).String()) if err != nil { return err } - config, err = parse(args[0], base, f) + r = f + + var common *os.File + if common, err = os.Open(base.Append("common").String()); err != nil { + if !errors.Is(err, os.ErrNotExist) { + _ = f.Close() + return err + } + } else { + r = io.MultiReader(f, common) + } + + config, err = parse(args[0], base, r) if closeErr := f.Close(); err == nil { err = closeErr } + if common != nil { + if closeErr := common.Close(); err == nil { + err = closeErr + } + } if err != nil { return err }