mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
version: fix CmdName on the tailscale-ipn.exe binary
Don't return "wg64", "wg32", etc. Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
93c2882a2f
commit
2db877caa3
@ -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
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
@ -36,3 +37,18 @@ func exe() string {
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
var findModuleInfoName = flag.String("module-info-file", "", "if non-empty, test findModuleInfo against this filename")
|
||||
|
||||
func TestFindModuleInfoManual(t *testing.T) {
|
||||
exe := *findModuleInfoName
|
||||
if exe == "" {
|
||||
t.Skip("skipping without --module-info-file filename")
|
||||
}
|
||||
cmd := cmdName(exe)
|
||||
mod, err := findModuleInfo(exe)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Logf("Got %q from: %s", cmd, mod)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user