Add support for ~username syntax (fix #1033) (#1035)

* Add support for ~username syntax (fix #1033)

* Fixed return string

Also removed non-descriptive variable name `foo`

* moved err declarations outside of if statement
This commit is contained in:
DanielPower 2018-03-30 17:50:51 -02:30 committed by Zachary Yedidia
parent 89f50638d7
commit 804943a1e8

View file

@ -2,6 +2,7 @@ package main
import (
"os"
"os/user"
"path/filepath"
"reflect"
"runtime"
@ -9,9 +10,8 @@ import (
"strings"
"time"
"unicode/utf8"
"github.com/mattn/go-runewidth"
homedir "github.com/mitchellh/go-homedir"
)
// Util.go is a collection of utility functions that are used throughout
@ -330,12 +330,25 @@ func ReplaceHome(path string) string {
return path
}
home, err := homedir.Dir()
if err != nil {
messenger.Error("Could not find home directory: ", err)
return path
var userData *user.User
var err error
homeString := strings.Split(path, "/")[0]
if homeString == "~" {
userData, err = user.Current()
if err != nil {
messenger.Error("Could not find user: ", err)
}
} else {
userData, err = user.Lookup(homeString[1:])
if err != nil {
messenger.Error("Could not find user: ", err)
}
}
return strings.Replace(path, "~", home, 1)
home := userData.HomeDir
return strings.Replace(path, homeString, home, 1)
}
// GetPath returns a filename without everything following a `:`