github.com/sleungcy/cli@v7.1.0+incompatible/command/v7/staging_environment_variable_group_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/v7action"
     5  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant"
     6  	"code.cloudfoundry.org/cli/util/ui"
     7  )
     8  
     9  type StagingEnvironmentVariableGroupCommand struct {
    10  	BaseCommand
    11  
    12  	usage           interface{} `usage:"CF_NAME staging-environment-variable-group"`
    13  	relatedCommands interface{} `related_commands:"env, running-environment-variable-group"`
    14  }
    15  
    16  func (cmd StagingEnvironmentVariableGroupCommand) Execute(args []string) error {
    17  	err := cmd.SharedActor.CheckTarget(false, false)
    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  	cmd.UI.DisplayTextWithFlavor("Getting the staging environment variable group as {{.Username}}...", map[string]interface{}{
    28  		"Username": user.Name,
    29  	})
    30  	cmd.UI.DisplayNewline()
    31  
    32  	envVars, warnings, err := cmd.Actor.GetEnvironmentVariableGroup(constant.StagingEnvironmentVariableGroup)
    33  	cmd.UI.DisplayWarnings(warnings)
    34  	if err != nil {
    35  		return err
    36  	}
    37  
    38  	if len(envVars) == 0 {
    39  		cmd.UI.DisplayTextWithFlavor("No staging environment variable group has been set.")
    40  	} else {
    41  		table, err := buildEnvVarsTable(envVars)
    42  		if err != nil {
    43  			return err
    44  		}
    45  
    46  		cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding)
    47  	}
    48  
    49  	return nil
    50  }
    51  
    52  func buildEnvVarsTable(envVars v7action.EnvironmentVariableGroup) ([][]string, error) {
    53  	var keyValueTable = [][]string{
    54  		{"variable name", "assigned value"},
    55  	}
    56  
    57  	for envVarName, envVarValue := range envVars {
    58  		keyValueTable = append(keyValueTable, []string{
    59  			envVarName,
    60  			envVarValue.Value,
    61  		})
    62  	}
    63  
    64  	return keyValueTable, nil
    65  }