2019-05-11 05:07:36 +08:00
|
|
|
// Package env contains functions for dealing with environment variables
|
|
|
|
package env
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
|
|
|
|
homedir "github.com/mitchellh/go-homedir"
|
|
|
|
)
|
|
|
|
|
2020-06-02 18:54:52 +08:00
|
|
|
// ShellExpandHelp describes what ShellExpand does for inclusion into help
|
|
|
|
const ShellExpandHelp = "\n\nLeading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.\n"
|
|
|
|
|
2019-05-11 05:07:36 +08:00
|
|
|
// ShellExpand replaces a leading "~" with the home directory" and
|
|
|
|
// expands all environment variables afterwards.
|
|
|
|
func ShellExpand(s string) string {
|
|
|
|
if s != "" {
|
|
|
|
if s[0] == '~' {
|
|
|
|
newS, err := homedir.Expand(s)
|
|
|
|
if err == nil {
|
|
|
|
s = newS
|
|
|
|
}
|
|
|
|
}
|
|
|
|
s = os.ExpandEnv(s)
|
|
|
|
}
|
|
|
|
return s
|
|
|
|
}
|