summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authormihna123 <mihailonvojinovic@gmail.com>2026-09-04 01:13:17 +0200
committermihna123 <mihailonvojinovic@gmail.com>2026-09-04 01:13:17 +0200
commit5907450d569c997809674a2abeec97ddf0afe4aa (patch)
tree7bd5af677b14433b5c18879e08bb672c87e259e1 /cmd
parenta57f4fcbcd7857286cff854f6d62285df7d098aa (diff)
downloadopenstore-5907450d569c997809674a2abeec97ddf0afe4aa.tar.gz
openstore-5907450d569c997809674a2abeec97ddf0afe4aa.zip
config: add config package and wire it into server and handlers
Replace the hardcoded server.Config with an ini-backed config package that reads /etc/openstore/openstore.conf then the user's config file, so user settings override system ones and both override the built-in defaults. Missing files are ignored rather than fatal. Move route registration into a handlers package that owns the templates and builds a Page view model, which removes the server -> handlers import cycle along with the setter-based context injection.
Diffstat (limited to 'cmd')
-rw-r--r--cmd/openstore/main.go17
1 files changed, 15 insertions, 2 deletions
diff --git a/cmd/openstore/main.go b/cmd/openstore/main.go
index 65d7afb..48b2df0 100644
--- a/cmd/openstore/main.go
+++ b/cmd/openstore/main.go
@@ -4,14 +4,27 @@ import (
"log/slog"
"os"
+ "codeberg.org/mihna123/openstore/internal/config"
"codeberg.org/mihna123/openstore/internal/server"
)
func main() {
slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, nil)))
- conf := &server.Config{Name: "OpenStore"}
+
+ dir, err := config.DefaultPath()
+ if err != nil {
+ slog.Error("failed to open config file", "err", err)
+ os.Exit(1)
+ }
+
+ conf, err := config.Load(dir)
+ if err != nil {
+ slog.Error("config load failed", "err", err)
+ os.Exit(1)
+ }
+
s := server.New(conf)
- if err := s.Serve(":3000"); err != nil {
+ if err := s.Serve(); err != nil {
slog.Error("server failed", "err", err)
os.Exit(1)
}