resolver API

resolver

package

API reference for the resolver package.

F
function

GetValue

GetValue returns the value to bind based on priority: CLI > Env > Default.

Parameters

cliVal
*string
envName
string
defVal
string
isFlag
bool

Returns

string
error
pkg/resolver/resolver.go:12-28
func GetValue(cliVal *string, envName, defVal string, isFlag bool) (string, error)

{
	if cliVal != nil {
		return *cliVal, nil
	}

	if envName != "" {
		if val, ok := os.LookupEnv(envName); ok {
			return val, nil
		}
	}

	if defVal != "" {
		return defVal, nil
	}

	return "", nil
}

Example

val, err := resolver.GetValue(nil, "ENV_VAR", "default", false)
F
function

TestGetValue_CLI

Parameters

pkg/resolver/resolver_test.go:8-17
func TestGetValue_CLI(t *testing.T)

{
	cli := "cli-value"
	val, err := GetValue(&cli, "ENV", "default", false)
	if err != nil {
		t.Fatalf("GetValue failed: %v", err)
	}
	if val != "cli-value" {
		t.Errorf("got %q, want %q", val, "cli-value")
	}
}
F
function

TestGetValue_Env

Parameters

pkg/resolver/resolver_test.go:19-30
func TestGetValue_Env(t *testing.T)

{
	os.Setenv("TEST_VAR", "env-value")
	defer os.Unsetenv("TEST_VAR")

	val, err := GetValue(nil, "TEST_VAR", "default", false)
	if err != nil {
		t.Fatalf("GetValue failed: %v", err)
	}
	if val != "env-value" {
		t.Errorf("got %q, want %q", val, "env-value")
	}
}
F
function

TestGetValue_Default

Parameters

pkg/resolver/resolver_test.go:32-40
func TestGetValue_Default(t *testing.T)

{
	val, err := GetValue(nil, "", "default-val", false)
	if err != nil {
		t.Fatalf("GetValue failed: %v", err)
	}
	if val != "default-val" {
		t.Errorf("got %q, want %q", val, "default-val")
	}
}
F
function

TestGetValue_Empty

Parameters

pkg/resolver/resolver_test.go:42-50
func TestGetValue_Empty(t *testing.T)

{
	val, err := GetValue(nil, "", "", false)
	if err != nil {
		t.Fatalf("GetValue failed: %v", err)
	}
	if val != "" {
		t.Errorf("got %q, want empty", val)
	}
}
F
function

TestGetValue_Priority

Parameters

pkg/resolver/resolver_test.go:52-64
func TestGetValue_Priority(t *testing.T)

{
	os.Setenv("PRIORITY_VAR", "env-value")
	defer os.Unsetenv("PRIORITY_VAR")

	cli := "cli-value"
	val, err := GetValue(&cli, "PRIORITY_VAR", "default", false)
	if err != nil {
		t.Fatalf("GetValue failed: %v", err)
	}
	if val != "cli-value" {
		t.Errorf("CLI should have priority, got %q", val)
	}
}