AGENTS.md: no direct commits to main, all changes via feature branches

This commit is contained in:
clawbot
2026-02-09 12:31:14 -08:00
parent e9b6eb862e
commit 7b0ff178d4
14 changed files with 247 additions and 100 deletions

View File

@@ -1,7 +1,7 @@
// Package config provides application configuration via environment and files.
package config
import (
"fmt"
"log/slog"
"git.eeqj.de/sneak/chat/internal/globals"
@@ -9,15 +9,18 @@ import (
"github.com/spf13/viper"
"go.uber.org/fx"
_ "github.com/joho/godotenv/autoload"
_ "github.com/joho/godotenv/autoload" // loads .env file
)
// ConfigParams defines the dependencies for creating a Config.
type ConfigParams struct {
fx.In
Globals *globals.Globals
Logger *logger.Logger
}
// Config holds all application configuration values.
type Config struct {
DBURL string
Debug bool
@@ -36,14 +39,15 @@ type Config struct {
log *slog.Logger
}
func New(lc fx.Lifecycle, params ConfigParams) (*Config, error) {
// New creates a new Config by reading from files and environment variables.
func New(_ fx.Lifecycle, params ConfigParams) (*Config, error) {
log := params.Logger.Get()
name := params.Globals.Appname
viper.SetConfigName(name)
viper.SetConfigType("yaml")
viper.AddConfigPath(fmt.Sprintf("/etc/%s", name))
viper.AddConfigPath(fmt.Sprintf("$HOME/.config/%s", name))
viper.AddConfigPath("/etc/" + name)
viper.AddConfigPath("$HOME/.config/" + name)
viper.AutomaticEnv()
viper.SetDefault("DEBUG", "false")
@@ -60,10 +64,9 @@ func New(lc fx.Lifecycle, params ConfigParams) (*Config, error) {
viper.SetDefault("SERVER_NAME", "")
viper.SetDefault("FEDERATION_KEY", "")
if err := viper.ReadInConfig(); err != nil {
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
// Config file not found is OK
} else {
err := viper.ReadInConfig()
if err != nil {
if _, ok := err.(viper.ConfigFileNotFoundError); !ok {
log.Error("config file malformed", "error", err)
panic(err)
}