diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-06-18 02:35:38 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-06-18 02:35:56 +0900 |
| commit | aee15b4f2a1db3ba2d608b891ec6ea56fc3510e4 (patch) | |
| tree | cd903adbac881cce853fd8e5e3e48eda6db738a4 | |
| parent | 18b1103fdcda10bec04ac39ec085da9647989b94 (diff) | |
cmd/app: common configuration file
Generally useful for shared storage and environment.
Signed-off-by: Ophestra <cat@gensokyo.uk>
| -rw-r--r-- | cmd/app/main.go | 21 |
1 files changed, 20 insertions, 1 deletions
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 } |
