refactor: major project restructure

This commit is contained in:
Mathis Maquenne
2025-05-01 20:30:56 +02:00
parent c74531b36c
commit 0bae78a1ff
27 changed files with 1017 additions and 812 deletions
+53
View File
@@ -0,0 +1,53 @@
package app
import (
"fmt"
"os"
"path"
"path/filepath"
"github.com/mathismqn/godeez/internal/config"
"github.com/mathismqn/godeez/internal/fileutil"
"github.com/mathismqn/godeez/internal/store"
)
type Context struct {
AppDir string
Config *config.Config
}
func NewContext(cfgPath string) (*Context, error) {
home, err := os.UserHomeDir()
if err != nil {
return nil, fmt.Errorf("failed to get home directory: %w", err)
}
cfgDir := filepath.Join(home, ".godeez")
if err := fileutil.EnsureDir(cfgDir); err != nil {
return nil, fmt.Errorf("failed to create config directory: %w", err)
}
musicDir := filepath.Join(home, "Music")
if err := fileutil.EnsureDir(musicDir); err != nil {
return nil, fmt.Errorf("failed to create music directory: %w", err)
}
appDir := path.Join(musicDir, "GoDeez")
if err := fileutil.EnsureDir(appDir); err != nil {
return nil, fmt.Errorf("failed to create app directory: %w", err)
}
cfg, err := config.New(cfgPath, cfgDir)
if err != nil {
return nil, err
}
if err := store.OpenDB(cfgDir); err != nil {
return nil, err
}
return &Context{
AppDir: appDir,
Config: cfg,
}, nil
}