summaryrefslogtreecommitdiffhomepage
path: root/version/cmdname.go
diff options
context:
space:
mode:
Diffstat (limited to 'version/cmdname.go')
-rw-r--r--version/cmdname.go26
1 files changed, 16 insertions, 10 deletions
diff --git a/version/cmdname.go b/version/cmdname.go
index 4e5280aff..a7899ed9f 100644
--- a/version/cmdname.go
+++ b/version/cmdname.go
@@ -9,6 +9,7 @@ package version
import (
"os"
"path"
+ "path/filepath"
"strings"
"rsc.io/goversion/version"
@@ -22,22 +23,27 @@ func CmdName() string {
if err != nil {
return "cmd"
}
+
+ // 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"))
+
var ret string
v, err := version.ReadExe(e)
if err != nil {
- ret = strings.TrimSuffix(strings.ToLower(e), ".exe")
- } else {
- // v is like:
- // "path\ttailscale.com/cmd/tailscale\nmod\ttailscale.com\t(devel)\t\ndep\tgithub.com/apenwarr/fixconsole\tv0.0.0-20191012055117-5a9f6489cc29\th1:muXWUcay7DDy1/hEQWrYlBy+g0EuwT70sBHg65SeUc4=\ndep\tgithub....
- for _, line := range strings.Split(v.ModuleInfo, "\n") {
- if strings.HasPrefix(line, "path\t") {
- ret = path.Base(strings.TrimPrefix(line, "path\t"))
- break
- }
+ return fallbackName
+ }
+ // v is like:
+ // "path\ttailscale.com/cmd/tailscale\nmod\ttailscale.com\t(devel)\t\ndep\tgithub.com/apenwarr/fixconsole\tv0.0.0-20191012055117-5a9f6489cc29\th1:muXWUcay7DDy1/hEQWrYlBy+g0EuwT70sBHg65SeUc4=\ndep\tgithub....
+ for _, line := range strings.Split(v.ModuleInfo, "\n") {
+ if strings.HasPrefix(line, "path\t") {
+ goPkg := strings.TrimPrefix(line, "path\t") // like "tailscale.com/cmd/tailscale"
+ ret = path.Base(goPkg) // goPkg is always forward slashes; use path, not filepath
+ break
}
}
if ret == "" {
- return "cmd"
+ return fallbackName
}
return ret
}