mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-09-18 05:17:40 +00:00
Put goplugins behind flag.
This commit is contained in:
54
pkg/pgmconfig/config.go
Normal file
54
pkg/pgmconfig/config.go
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Package commands holds the CLI glue mapping textual commands/args to method calls.
|
||||
package pgmconfig
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
const (
|
||||
XDG_CONFIG_HOME = "XDG_CONFIG_HOME"
|
||||
defaultConfigSubdir = ".config"
|
||||
)
|
||||
|
||||
// Use https://github.com/kirsle/configdir instead?
|
||||
func ConfigRoot() string {
|
||||
dir := os.Getenv(XDG_CONFIG_HOME)
|
||||
if len(dir) == 0 {
|
||||
dir = filepath.Join(
|
||||
homeDir(), defaultConfigSubdir)
|
||||
}
|
||||
return filepath.Join(dir, PgmName)
|
||||
}
|
||||
|
||||
func homeDir() string {
|
||||
home := os.Getenv(homeEnv())
|
||||
if len(home) > 0 {
|
||||
return home
|
||||
}
|
||||
return "~"
|
||||
}
|
||||
|
||||
func homeEnv() string {
|
||||
if runtime.GOOS == "windows" {
|
||||
return "USERPROFILE"
|
||||
}
|
||||
return "HOME"
|
||||
}
|
||||
56
pkg/pgmconfig/config_test.go
Normal file
56
pkg/pgmconfig/config_test.go
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package pgmconfig
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestConfigDirNoXdg(t *testing.T) {
|
||||
xdg, isSet := os.LookupEnv(XDG_CONFIG_HOME)
|
||||
if isSet {
|
||||
os.Unsetenv(XDG_CONFIG_HOME)
|
||||
}
|
||||
s := ConfigRoot()
|
||||
if isSet {
|
||||
os.Setenv(XDG_CONFIG_HOME, xdg)
|
||||
}
|
||||
if !strings.HasSuffix(
|
||||
s,
|
||||
rootedPath(defaultConfigSubdir, PgmName)) {
|
||||
t.Fatalf("unexpected config dir: %s", s)
|
||||
}
|
||||
}
|
||||
|
||||
func rootedPath(elem ...string) string {
|
||||
return string(filepath.Separator) + filepath.Join(elem...)
|
||||
}
|
||||
|
||||
func TestConfigDirWithXdg(t *testing.T) {
|
||||
xdg, isSet := os.LookupEnv(XDG_CONFIG_HOME)
|
||||
os.Setenv(XDG_CONFIG_HOME, rootedPath("blah"))
|
||||
s := ConfigRoot()
|
||||
if isSet {
|
||||
os.Setenv(XDG_CONFIG_HOME, xdg)
|
||||
}
|
||||
if s != rootedPath("blah", PgmName) {
|
||||
t.Fatalf("unexpected config dir: %s", s)
|
||||
}
|
||||
}
|
||||
32
pkg/pgmconfig/constants.go
Normal file
32
pkg/pgmconfig/constants.go
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
Copyright 2017 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Package constants holds global constants for the kustomize tool.
|
||||
package pgmconfig
|
||||
|
||||
// KustomizationFileNames is a list of filenames
|
||||
// that kustomize recognizes.
|
||||
// To avoid ambiguity, a directory cannot contain
|
||||
// more than one match to this list.
|
||||
var KustomizationFileNames = []string{
|
||||
"kustomization.yaml",
|
||||
"kustomization.yml",
|
||||
"Kustomization",
|
||||
}
|
||||
|
||||
const (
|
||||
PgmName = "kustomize"
|
||||
)
|
||||
Reference in New Issue
Block a user