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  }