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

     1  package v7
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  
     7  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
     8  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant"
     9  	"code.cloudfoundry.org/cli/cf/errors"
    10  	"code.cloudfoundry.org/cli/command/flag"
    11  )
    12  
    13  type SetRunningEnvironmentVariableGroupCommand struct {
    14  	BaseCommand
    15  
    16  	RequiredArgs    flag.SetEnvVarGroup `positional-args:"yes"`
    17  	usage           interface{}         `usage:"CF_NAME set-running-environment-variable-group '{\"name\":\"value\",\"name\":\"value\"}'"`
    18  	relatedCommands interface{}         `related_commands:"set-env, running-environment-variable-group"`
    19  }
    20  
    21  func (cmd SetRunningEnvironmentVariableGroupCommand) Execute(args []string) error {
    22  	err := cmd.SharedActor.CheckTarget(false, false)
    23  	if err != nil {
    24  		return err
    25  	}
    26  
    27  	user, err := cmd.Config.CurrentUser()
    28  	if err != nil {
    29  		return err
    30  	}
    31  
    32  	cmd.UI.DisplayTextWithFlavor("Setting the contents of the running environment variable group as {{.Username}}...", map[string]interface{}{
    33  		"Username": user.Name,
    34  	})
    35  
    36  	var envVars ccv3.EnvironmentVariables
    37  	err = json.Unmarshal([]byte(fmt.Sprintf(`{"var":%s}`, cmd.RequiredArgs.EnvVarGroupJson)), &envVars)
    38  	if err != nil {
    39  		return errors.New("Invalid environment variable group provided. Please provide a valid JSON object.")
    40  	}
    41  
    42  	warnings, err := cmd.Actor.SetEnvironmentVariableGroup(
    43  		constant.RunningEnvironmentVariableGroup,
    44  		envVars,
    45  	)
    46  	cmd.UI.DisplayWarnings(warnings)
    47  	if err != nil {
    48  		return err
    49  	}
    50  
    51  	cmd.UI.DisplayOK()
    52  
    53  	return nil
    54  }