mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-08 01:37:54 +00:00
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"github.com/rcourtman/pulse-go-rewrite/internal/config"
|
|
)
|
|
|
|
func resolveAuthEnvPath(configPath string) string {
|
|
return filepath.Join(config.ResolveRuntimeDataDir(configPath), ".env")
|
|
}
|
|
|
|
func resolveAuthEnvWritePaths(configPath string, dataPath string) []string {
|
|
paths := []string{resolveAuthEnvPath(configPath)}
|
|
dataEnvPath := resolveAuthEnvPath(dataPath)
|
|
if dataEnvPath != paths[0] {
|
|
paths = append(paths, dataEnvPath)
|
|
}
|
|
return paths
|
|
}
|
|
|
|
func writeAuthEnvFile(configPath string, dataPath string, content []byte) (string, error) {
|
|
paths := resolveAuthEnvWritePaths(configPath, dataPath)
|
|
var lastErr error
|
|
for _, envPath := range paths {
|
|
if err := os.MkdirAll(filepath.Dir(envPath), 0755); err != nil {
|
|
lastErr = err
|
|
continue
|
|
}
|
|
if err := os.WriteFile(envPath, content, 0600); err != nil {
|
|
lastErr = err
|
|
continue
|
|
}
|
|
return envPath, nil
|
|
}
|
|
if lastErr == nil {
|
|
lastErr = fmt.Errorf("no auth env write path available")
|
|
}
|
|
return "", lastErr
|
|
}
|
|
|
|
func removeAuthEnvFiles(configPath string, dataPath string) error {
|
|
paths := resolveAuthEnvWritePaths(configPath, dataPath)
|
|
var lastErr error
|
|
for _, envPath := range paths {
|
|
if err := os.Remove(envPath); err != nil && !os.IsNotExist(err) {
|
|
lastErr = err
|
|
}
|
|
}
|
|
return lastErr
|
|
}
|