You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: default_variable.go
    path of file: ./repos/devspace/pkg/devspace/config/loader/variable
    
    the code of the file until where you have to start completion: package variable

import (
	"context"
	"os"
	"strconv"

	"github.com/loft-sh/devspace/pkg/devspace/config/localcache"
	"github.com/sirupsen/logrus"

	"github.com/loft-sh/devspace/pkg/devspace/config/versions/latest"
	"github.com/loft-sh/devspace/pkg/util/log"
)

// NewDefaultVariable creates a new 
    
func (d *defaultVariable) Load(ctx context.Context, definition *latest.Variable) (interface{}, error) {
	if definition.Command != "" || len(definition.Commands) > 0 {
		return NewCommandVariable(d.name, d.workingDirectory).Load(ctx, definition)
	}

	// Check environment
	value := os.Getenv(d.name)

	// Did we find it in the environment variables?
	if definition.Source != latest.VariableSourceInput && value != "" {
		return valueByType(value, definition.Default)
	}

	// Remote cache takes precedence over local cache
	if !definition.NoCache {
		if value, ok := d.localCache.GetVar(d.name); !definition.NoCache && ok {
			return valueByType(value, definition.Default)
		}
	}

	// is logger silent
	if d.log == log.Discard || d.log.GetLevel() < logrus.InfoLevel {
		if definition.Default != nil {
			return definition.Default, nil
		}

		return valueByType(value, definition.Default)
	} else {
		var err error
		value, err = askQuestion(definition, d.log)
		if err != nil {
			return nil, err
		}
	}

	// Now ask the question
	if !definition.NoCache {
		d.localCache.SetVar(d.name, value)
	}
	return valueByType(value, definition.Default)
}