github.com/NeowayLabs/nash@v0.2.2-0.20200127205349-a227041ffd50/cmd/nash/env.go (about) 1 package main 2 3 import ( 4 "errors" 5 "os" 6 "path/filepath" 7 ) 8 9 func NashPath() (string, error) { 10 nashpath := os.Getenv("NASHPATH") 11 if nashpath != "" { 12 return nashpath, nil 13 } 14 h, err := home() 15 return filepath.Join(h, "nash"), err 16 } 17 18 func NashRoot() (string, error) { 19 nashroot, ok := os.LookupEnv("NASHROOT") 20 if ok { 21 return nashroot, nil 22 } 23 24 h, err := home() 25 return filepath.Join(h, "nashroot"), err 26 } 27 28 func home() (string, error) { 29 homedir, err := os.UserHomeDir() 30 if err != nil { 31 return "", err 32 } 33 if homedir == "" { 34 return "", errors.New("invalid empty home dir") 35 } 36 return homedir, nil 37 }