orchard/internal/orchardhome/orchardhome.go

31 lines
679 B
Go

package orchardhome
import (
"errors"
"fmt"
"os"
"path/filepath"
)
var ErrFailed = errors.New("failed to retrieve Orchard's home directory path")
func Path() (string, error) {
homeDir, err := os.UserHomeDir()
if err != nil {
return "", fmt.Errorf("%w: failed to retrieve current user's home directory %v",
ErrFailed, err)
}
if orchardHome := os.Getenv("ORCHARD_HOME"); orchardHome != "" {
homeDir = orchardHome
}
orchardDir := filepath.Join(homeDir, ".orchard")
if err := os.Mkdir(orchardDir, 0700); err != nil && !os.IsExist(err) {
return "", fmt.Errorf("%w: cannot create directory %s: %v",
ErrFailed, orchardDir, err)
}
return orchardDir, nil
}