feat: add config and models packages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
40
internal/config/config.go
Normal file
40
internal/config/config.go
Normal file
@@ -0,0 +1,40 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user