Files
i3status-go/vendor/github.com/adrg/xdg/internal/pathutil/pathutil_plan9.go
2024-09-13 23:28:48 +03:00

41 lines
763 B
Go

package pathutil
import (
"errors"
"io/fs"
"os"
"path/filepath"
"strings"
)
// UserHomeDir returns the home directory of the current user.
func UserHomeDir() string {
if home := os.Getenv("home"); home != "" {
return home
}
return "/"
}
// Exists returns true if the specified path exists.
func Exists(path string) bool {
_, err := os.Stat(path)
return err == nil || errors.Is(err, fs.ErrExist)
}
// ExpandHome substitutes `~` and `$home` at the start of the specified `path`.
func ExpandHome(path string) string {
home := UserHomeDir()
if path == "" || home == "" {
return path
}
if path[0] == '~' {
return filepath.Join(home, path[1:])
}
if strings.HasPrefix(path, "$home") {
return filepath.Join(home, path[5:])
}
return path
}