Files
GitM/internal/config/config.go
panw 94d3952711 feat: add config and models packages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 16:09:22 +08:00

41 lines
640 B
Go

package config
import (
"os"
"path/filepath"
"sync"
)
type Config struct {
ListenAddr string
DataDir string
DBPath string
ReposDir string
}
var instance *Config
var initOnce sync.Once
func Get() *Config {
initOnce.Do(func() {
instance = &Config{
ListenAddr: ":9000",
DataDir: "./data",
}
})
return instance
}
func (c *Config) SetDataDir(dir string) {
c.DataDir = dir
c.DBPath = filepath.Join(dir, "gitm.db")
c.ReposDir = filepath.Join(dir, "repos")
}
func (c *Config) EnsureDirs() error {
if err := os.MkdirAll(c.DataDir, 0755); err != nil {
return err
}
return os.MkdirAll(c.ReposDir, 0755)
}