Selaa lähdekoodia

Update go-dockerlibrary to pull in the new "getenv" function

See https://github.com/docker-library/go-dockerlibrary/pull/15.
Tianon Gravi 8 vuotta sitten
vanhempi
sitoutus
e6ff2ce3ff

+ 1 - 1
bashbrew/go/vendor/manifest

@@ -10,7 +10,7 @@
 		{
 			"importpath": "github.com/docker-library/go-dockerlibrary",
 			"repository": "https://github.com/docker-library/go-dockerlibrary",
-			"revision": "29d359eaa1fda9e522de1ee6994edf8c85eb5665",
+			"revision": "994859128ef56db39a0e164a348a249733b9ec91",
 			"branch": "master"
 		},
 		{

+ 24 - 0
bashbrew/go/vendor/src/github.com/docker-library/go-dockerlibrary/pkg/templatelib/lib.go

@@ -3,6 +3,7 @@ package templatelib
 import (
 	"encoding/json"
 	"fmt"
+	"os"
 	"reflect"
 	"strings"
 	"text/template"
@@ -111,4 +112,27 @@ var FuncMap = template.FuncMap{
 	"replace": stringsActionFactory("replace", false, func(strs []string, str string) string {
 		return strings.NewReplacer(strs...).Replace(str)
 	}),
+
+	// {{- getenv "PATH" -}}
+	// {{- getenv "HOME" "no HOME set" -}}
+	// {{- getenv "HOME" "is set" "is NOT set (or is empty)" -}}
+	"getenv": thingsActionFactory("getenv", true, func(args []interface{}, arg interface{}) interface{} {
+		var (
+			val                  = os.Getenv(arg.(string))
+			setVal   interface{} = val
+			unsetVal interface{} = ""
+		)
+		if len(args) == 2 {
+			setVal, unsetVal = args[0], args[1]
+		} else if len(args) == 1 {
+			unsetVal = args[0]
+		} else if len(args) != 0 {
+			panic(fmt.Sprintf(`expected between 1 and 3 arguments to "getenv", got %d`, len(args)+1))
+		}
+		if val != "" {
+			return setVal
+		} else {
+			return unsetVal
+		}
+	}),
 }

+ 28 - 0
bashbrew/go/vendor/src/github.com/docker-library/go-dockerlibrary/pkg/templatelib/lib_example_test.go

@@ -191,3 +191,31 @@ func Example_trimReplaceGitToGo() {
 	// github.com/jsmith/some-repo
 	// github.com/jsmith/some-repo
 }
+
+func Example_getenv() {
+	tmpl, err := template.New("getenv").Funcs(templatelib.FuncMap).Parse(`
+		The FOO environment variable {{ getenv "FOO" "is set" "is not set" }}. {{- "\n" -}}
+		BAR: {{ getenv "BAR" "not set" }} {{- "\n" -}}
+		BAZ: {{ getenv "BAZ" "not set" }} {{- "\n" -}}
+		{{- $env := getenv "FOOBARBAZ" -}}
+		{{- if eq $env "" -}}
+			FOOBARBAZ {{- "\n" -}}
+		{{- end -}}
+	`)
+
+	os.Setenv("FOO", "")
+	os.Unsetenv("BAR")
+	os.Setenv("BAZ", "foobar")
+	os.Unsetenv("FOOBARBAZ")
+
+	err = tmpl.Execute(os.Stdout, nil)
+	if err != nil {
+		panic(err)
+	}
+
+	// Output:
+	// The FOO environment variable is not set.
+	// BAR: not set
+	// BAZ: foobar
+	// FOOBARBAZ
+}