Files
kopia/cli/userhost.go
2019-12-18 23:11:38 -08:00

61 lines
1.1 KiB
Go

package cli
import (
"os"
"os/user"
"runtime"
"strings"
"gopkg.in/alecthomas/kingpin.v2"
)
var (
hostName = getDefaultHostName()
userName = getDefaultUserName()
)
func getUserName() string {
return userName
}
func getDefaultUserName() string {
currentUser, err := user.Current()
if err != nil {
log.Warningf("Cannot determine current user: %s", err)
return "nobody"
}
u := currentUser.Username
if runtime.GOOS == "windows" {
if p := strings.Index(u, "\\"); p >= 0 {
// On Windows ignore domain name.
u = u[p+1:]
}
}
return u
}
func getHostName() string {
return hostName
}
func getDefaultHostName() string {
hostname, err := os.Hostname()
if err != nil {
log.Warningf("Unable to determine hostname: %s", err)
return "nohost"
}
// Normalize hostname.
hostname = strings.ToLower(strings.Split(hostname, ".")[0])
return hostname
}
func addUserAndHostFlags(cmd *kingpin.CmdClause) {
cmd.Flag("hostname", "Override default hostname.").StringVar(&hostName)
cmd.Flag("username", "Override default username.").StringVar(&userName)
}