|
|
|
@ -26,13 +26,16 @@ func CmdName() string {
|
|
|
|
|
if err != nil {
|
|
|
|
|
return "cmd"
|
|
|
|
|
}
|
|
|
|
|
return cmdName(e)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func cmdName(exe string) string {
|
|
|
|
|
// fallbackName, the lowercase basename of the executable, is what we return if
|
|
|
|
|
// we can't find the Go module metadata embedded in the file.
|
|
|
|
|
fallbackName := filepath.Base(strings.TrimSuffix(strings.ToLower(e), ".exe"))
|
|
|
|
|
fallbackName := filepath.Base(strings.TrimSuffix(strings.ToLower(exe), ".exe"))
|
|
|
|
|
|
|
|
|
|
var ret string
|
|
|
|
|
info, err := findModuleInfo(e)
|
|
|
|
|
info, err := findModuleInfo(exe)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return fallbackName
|
|
|
|
|
}
|
|
|
|
@ -45,6 +48,12 @@ func CmdName() string {
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if strings.HasPrefix(ret, "wg") && fallbackName == "tailscale-ipn" {
|
|
|
|
|
// The tailscale-ipn.exe binary for internal build system packaging reasons
|
|
|
|
|
// has a path of "tailscale.io/win/wg64", "tailscale.io/win/wg32", etc.
|
|
|
|
|
// Ignore that name and use "tailscale-ipn" instead.
|
|
|
|
|
return fallbackName
|
|
|
|
|
}
|
|
|
|
|
if ret == "" {
|
|
|
|
|
return fallbackName
|
|
|
|
|
}
|
|
|
|
|