package config import ( "os" "path/filepath" ) type Config struct { DBPath string } func NewConfig() (*Config, error) { dsn, err := getDBPath() if err != nil { return nil, err } return &Config{DBPath: dsn}, nil } func getDBPath() (string, error) { if dsn := os.Getenv("SPELLBOOK_DB_PATH"); dsn != "" { return dsn, nil } dir, err := os.UserConfigDir() if err != nil { return "", err } return filepath.Join(dir, "spellbook", "spellbook.db"), nil }