2025-03-31 07:13:22 +02:00

45 lines
895 B
Go

package config
import (
"errors"
"fmt"
"os"
"path/filepath"
"runtime"
"git.netflux.io/rob/octoplex/internal/domain"
)
func createAppConfigDir(configDir string) (string, error) {
path := filepath.Join(configDir, domain.AppName)
if err := os.MkdirAll(path, 0744); err != nil {
return "", fmt.Errorf("mkdir all: %w", err)
}
return path, nil
}
func createAppStateDir() (string, error) {
userHomeDir, err := os.UserHomeDir()
if err != nil {
return "", err
}
var dir string
switch runtime.GOOS {
case "darwin":
dir = filepath.Join(userHomeDir, "Library", "Caches", domain.AppName)
case "windows":
// TODO: Windows support
return "", errors.New("not implemented")
default: // Unix-like
dir = filepath.Join(userHomeDir, ".state", domain.AppName)
}
if err := os.MkdirAll(dir, 0744); err != nil {
return "", fmt.Errorf("mkdir all: %w", err)
}
return dir, nil
}