mirror of
https://github.com/kopia/kopia.git
synced 2026-01-26 23:38:04 -05:00
61 lines
1.1 KiB
Go
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)
|
|
}
|