28 lines
493 B
Go
28 lines
493 B
Go
|
package config
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
)
|
||
|
|
||
|
func Path(filename string) (string, error) {
|
||
|
configHome := os.Getenv("XDG_CONFIG_HOME")
|
||
|
if configHome == "" {
|
||
|
home := os.Getenv("HOME")
|
||
|
if home == "" {
|
||
|
return "", errors.New("HOME not set")
|
||
|
}
|
||
|
configHome = filepath.Join(home, ".config")
|
||
|
}
|
||
|
|
||
|
p := filepath.Join(configHome, "hydroxide", filename)
|
||
|
|
||
|
dirname, _ := filepath.Split(p)
|
||
|
if err := os.MkdirAll(dirname, 0700); err != nil {
|
||
|
return "", err
|
||
|
}
|
||
|
|
||
|
return p, nil
|
||
|
}
|