diff --git a/Gopkg.lock b/Gopkg.lock index 0499f08..09c1d38 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -15,7 +15,7 @@ branch = "master" name = "github.com/OpenPeeDeeP/depguard" packages = ["."] - revision = "f2dff4f73566d1b9bd73f9bfd765030fbae5263a" + revision = "a69c782687b207067fa0e371408bb18f38e1355f" [[projects]] name = "github.com/client9/misspell" @@ -35,6 +35,21 @@ revision = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9" version = "v1.4.7" +[[projects]] + name = "github.com/gobwas/glob" + packages = [ + ".", + "compiler", + "match", + "syntax", + "syntax/ast", + "syntax/lexer", + "util/runes", + "util/strings" + ] + revision = "5ccd90ef52e1e632236f7326478d4faa74f99438" + version = "v0.2.3" + [[projects]] name = "github.com/gogo/protobuf" packages = ["proto"] @@ -99,8 +114,8 @@ "pkg/result/processors", "pkg/timeutils" ] - revision = "1774bf22a26aa1203677a947092345d1e61e6e26" - version = "v1.9.1" + revision = "973c9fdfd8c3f4a633a1a8fd37ef3d2f0f733d54" + version = "v1.9.3" [[projects]] branch = "master" @@ -110,7 +125,7 @@ "lib/cfg", "lib/whitelist" ] - revision = "54e733a64097854cf4d8fa80ccf48012a487ae1a" + revision = "e3b43b6cb1916e0000f244f26ee752733e544429" [[projects]] branch = "master" @@ -304,8 +319,8 @@ [[projects]] name = "github.com/tidwall/gjson" packages = ["."] - revision = "f123b340873a0084cb27267eddd8ff615115fbff" - version = "v1.1.2" + revision = "1e3f6aeaa5bad08d777ea7807b279a07885dd8b2" + version = "v1.1.3" [[projects]] branch = "master" @@ -317,7 +332,7 @@ branch = "master" name = "golang.org/x/crypto" packages = ["ssh/terminal"] - revision = "c126467f60eb25f8f27e5a981f32a87e3965053f" + revision = "f792edd33d2c59a74c4d81e9b9a536e5301a8b83" [[projects]] branch = "master" @@ -326,7 +341,7 @@ "unix", "windows" ] - revision = "ac767d655b305d4e9612f5f6e33120b9176c4ad4" + revision = "34b17bdb430002e9db9ae7ddc8480b9fa05edc22" [[projects]] name = "golang.org/x/text" @@ -361,7 +376,7 @@ "imports", "internal/fastwalk" ] - revision = "10e39b9b093209d1d6c03acc2252a399ece6b112" + revision = "1b5a18146dea803d40d194b191359600da91665a" source = "github.com/golangci/tools" [[projects]] diff --git a/cloud_env.go b/cloud_env.go index 63a01f9..2d27425 100644 --- a/cloud_env.go +++ b/cloud_env.go @@ -248,7 +248,7 @@ func processJSONPath(jsonString string, jsonPath string) (string, bool) { err := json.Unmarshal([]byte(jsonString), &json_data) if err != nil { return "", false - } + } res, err := jsonpath.JsonPathLookup(json_data, jsonPath) _, isMap := res.(map[string]interface{}) _, isArr := res.([]interface{}) @@ -282,12 +282,16 @@ func GetCredentialsForService(serviceTag, serviceLabel, credentials string) map[ func GetString(name string) (string, bool) { val, ok := loadedMappings[name] + if !ok { + return "", false + } + _, isStr := val.(string) - if ok && !isStr { + if !isStr { bytes, _ := json.Marshal(val) return string(bytes), true } - return val.(string), ok + return val.(string), true } func GetDictionary(name string) gjson.Result { diff --git a/mappings_test.go b/mappings_test.go index bfd7c19..b7e20ad 100644 --- a/mappings_test.go +++ b/mappings_test.go @@ -149,3 +149,14 @@ func TestJsonPathFromEnvVar(t *testing.T) { t.Errorf("Got: \t%s\n Wanted: \t%s\n", testString, "env-var-json-username") } } + +func TestBadVars(t *testing.T) { + setEnvVariable() + + for i := 1; i <= 4; i++ { + badStr, ok := GetString("bad_var" + string(i)) + if badStr != "" || ok { + t.Errorf("Did not correctly fail bad string\n") + } + } +}