1
0
forked from rosa/hakurei

cmd/app: common configuration file

Generally useful for shared storage and environment.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-06-18 02:35:38 +09:00
parent 18b1103fdc
commit aee15b4f2a
+20 -1
View File
@@ -7,6 +7,7 @@ package main
import ( import (
"context" "context"
"errors" "errors"
"io"
"log" "log"
"os" "os"
"os/exec" "os/exec"
@@ -134,14 +135,32 @@ func main() {
} }
var config *hst.Config var config *hst.Config
var r io.Reader
f, err := os.Open(base.Append("app", args[0]).String()) f, err := os.Open(base.Append("app", args[0]).String())
if err != nil { if err != nil {
return err 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 { if closeErr := f.Close(); err == nil {
err = closeErr err = closeErr
} }
if common != nil {
if closeErr := common.Close(); err == nil {
err = closeErr
}
}
if err != nil { if err != nil {
return err return err
} }