elvish/store/data_dir.go
2015-02-25 16:43:31 +01:00

25 lines
525 B
Go

package store
import (
"errors"
"os"
"strings"
)
var (
ErrEmptyHOME = errors.New("environment variable HOME is empty")
)
// EnsureDataDir ensures Elvish's data directory exists, creating it if
// necessary. It returns the path to the data directory (never with a
// trailing slash) and possible error.
func EnsureDataDir() (string, error) {
home := os.Getenv("HOME")
if home == "" {
return "", ErrEmptyHOME
}
home = strings.TrimRight(home, "/")
ddir := home + "/.elvish"
return ddir, os.MkdirAll(ddir, 0700)
}