code.cloudfoundry.org/cli@v7.1.0+incompatible/command/v7/set_env_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/v7action"
     5  	"code.cloudfoundry.org/cli/command/flag"
     6  )
     7  
     8  type SetEnvCommand struct {
     9  	BaseCommand
    10  
    11  	RequiredArgs    flag.SetEnvironmentArgs `positional-args:"yes"`
    12  	usage           interface{}             `usage:"CF_NAME set-env APP_NAME ENV_VAR_NAME ENV_VAR_VALUE"`
    13  	relatedCommands interface{}             `related_commands:"apps, env, restart, set-running-environment-variable-group, set-staging-environment-variable-group, stage, unset-env"`
    14  }
    15  
    16  func (cmd SetEnvCommand) Execute(args []string) error {
    17  	err := cmd.SharedActor.CheckTarget(true, true)
    18  	if err != nil {
    19  		return err
    20  	}
    21  
    22  	user, err := cmd.Config.CurrentUser()
    23  	if err != nil {
    24  		return err
    25  	}
    26  
    27  	appName := cmd.RequiredArgs.AppName
    28  	cmd.UI.DisplayTextWithFlavor("Setting env variable {{.EnvVarName}} for app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{
    29  		"AppName":    appName,
    30  		"EnvVarName": cmd.RequiredArgs.EnvironmentVariableName,
    31  		"OrgName":    cmd.Config.TargetedOrganization().Name,
    32  		"SpaceName":  cmd.Config.TargetedSpace().Name,
    33  		"Username":   user.Name,
    34  	})
    35  
    36  	warnings, err := cmd.Actor.SetEnvironmentVariableByApplicationNameAndSpace(
    37  		appName,
    38  		cmd.Config.TargetedSpace().GUID,
    39  		v7action.EnvironmentVariablePair{
    40  			Key:   cmd.RequiredArgs.EnvironmentVariableName,
    41  			Value: string(cmd.RequiredArgs.EnvironmentVariableValue),
    42  		})
    43  	cmd.UI.DisplayWarnings(warnings)
    44  	if err != nil {
    45  		return err
    46  	}
    47  
    48  	cmd.UI.DisplayOK()
    49  	cmd.UI.DisplayText("TIP: Use 'cf restage {{.AppName}}' to ensure your env variable changes take effect.", map[string]interface{}{
    50  		"AppName": appName,
    51  	})
    52  
    53  	return nil
    54  }