33 lines
472 B
Go
33 lines
472 B
Go
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
|
|
}
|