gt/internal/dirs/dirs.go

38 lines
661 B
Go
Raw Normal View History

package dirs
import (
"os"
"path/filepath"
"strings"
)
// UnExpand unexpands some directory shortcuts
//
// $HOME -> ~
2024-06-20 01:21:35 -04:00
// $PWD -> .
// workdir -> .
func UnExpand(dir, workdir string) (outdir string) {
outdir = filepath.Clean(dir)
home := os.Getenv("HOME")
2024-06-19 19:35:40 -04:00
if pwd, err := os.Getwd(); err == nil && home != pwd {
2024-06-20 01:21:35 -04:00
outdir = strings.Replace(outdir, pwd, ".", 1)
} else if workdir != "" {
outdir = strings.Replace(outdir, workdir, "", 1)
2024-06-19 19:35:40 -04:00
}
outdir = strings.Replace(outdir, home, "~", 1)
outdir = UnEscape(outdir)
if outdir == "" {
outdir = "/"
}
return
}
func UnEscape(input string) string {
return strings.ReplaceAll(input, "%20", " ")
}