Added windows executable extensions to Kubectl plugins

Currently, the kubectl plugins system - when running under Windows - will determine that a plugin is executable
by looking at its extension, comparing it to '.exe'.

I think we should allow plugins w/ a few more known extensions (.bat, .com, .cmd; for example) -
This would give more of a similar experience to plugins under *nix, where shell scripts are often used.

Moreover, there were two windows-specific behaviors that were redundant,
which I've removed:

1. In plugin.go - There's no need to differentiate between windows and
under OS-es when looking at the PATH variable; It can be refered as 'PATH'
in Windows as well

2. In cmd.go - There's no need to append a suffix when looking up
plugins on windows; One can safely use 'exec.LookPath' without a suffix
on Windows - and get automatic resolving for known executable types
This commit is contained in:
Danny Shemesh
2019-01-29 15:09:40 +02:00
committed by dashemes
parent 3fbdc8c327
commit aae1944a07
2 changed files with 5 additions and 13 deletions

View File

@@ -22,7 +22,6 @@ import (
"io"
"os"
"os/exec"
"runtime"
"strings"
"syscall"
@@ -339,12 +338,6 @@ type defaultPluginHandler struct{}
// Lookup implements PluginHandler
func (h *defaultPluginHandler) Lookup(filename string) (string, error) {
// if on Windows, append the "exe" extension
// to the filename that we are looking up.
if runtime.GOOS == "windows" {
filename = filename + ".exe"
}
return exec.LookPath(filename)
}