Improve plugin home defaulting.

This commit is contained in:
jregan
2019-11-03 10:04:45 -08:00
parent ba925e833d
commit d08690a6aa
11 changed files with 263 additions and 67 deletions

View File

@@ -12,6 +12,7 @@ import (
"strings"
"time"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/pgmconfig"
)
@@ -29,33 +30,36 @@ type Compiler struct {
// DefaultSrcRoot guesses where the user
// has her ${g}/${v}/$lower(${k})/${k}.go files.
func DefaultSrcRoot() (string, error) {
var nope []string
var root string
root = filepath.Join(
os.Getenv("GOPATH"), "src",
pgmconfig.DomainName, pgmconfig.ProgramName, pgmconfig.RelPluginHome)
if FileExists(root) {
return root, nil
}
nope = append(nope, root)
root = pgmconfig.DefaultAbsPluginHome()
if FileExists(root) {
return root, nil
}
nope = append(nope, root)
root = filepath.Join(
pgmconfig.HomeDir(), pgmconfig.ProgramName, pgmconfig.RelPluginHome)
if FileExists(root) {
return root, nil
}
nope = append(nope, root)
return "", fmt.Errorf(
"no default src root; tried %v", nope)
func DefaultSrcRoot(fSys filesys.FileSystem) (string, error) {
return pgmconfig.FirstDirThatExistsElseError(
"source directory", fSys, []pgmconfig.NotedFunc{
{
Note: "old style $GOPATH",
F: func() string {
return filepath.Join(
os.Getenv("GOPATH"),
"src", pgmconfig.DomainName,
pgmconfig.ProgramName, pgmconfig.RelPluginHome)
},
},
{
Note: "HOME with literal 'gopath'",
F: func() string {
return filepath.Join(
pgmconfig.HomeDir(), "gopath",
"src", pgmconfig.DomainName,
pgmconfig.ProgramName, pgmconfig.RelPluginHome)
},
},
{
Note: "home directory",
F: func() string {
return filepath.Join(
pgmconfig.HomeDir(), pgmconfig.DomainName,
pgmconfig.ProgramName, pgmconfig.RelPluginHome)
},
},
})
}
// NewCompiler returns a new compiler instance.

View File

@@ -9,6 +9,7 @@ import (
"path/filepath"
"testing"
"sigs.k8s.io/kustomize/api/filesys"
. "sigs.k8s.io/kustomize/api/plugins/compiler"
)
@@ -18,7 +19,7 @@ func TestCompiler(t *testing.T) {
if err != nil {
t.Errorf("failed to make temp dir: %v", err)
}
srcRoot, err := DefaultSrcRoot()
srcRoot, err := DefaultSrcRoot(filesys.MakeFsOnDisk())
if err != nil {
t.Error(err)
}

View File

@@ -57,7 +57,12 @@ func TestLoader(t *testing.T) {
ldr := loadertest.NewFakeLoader("/foo")
pLdr := NewLoader(pgmconfig.EnabledPluginConfig(), rmF)
c, err := pgmconfig.EnabledPluginConfig()
if err != nil {
t.Fatal(err)
}
pLdr := NewLoader(c, rmF)
if pLdr == nil {
t.Fatal("expect non-nil loader")
}