Documentation ¶
Overview ¶
Package config package contains everything related to the CF CLI Configuration.
Index ¶
- Constants
- func ConfigFilePath() string
- func WriteConfig(c *Config) error
- type CFConfig
- type ColorSetting
- type Config
- func (config *Config) APIVersion() string
- func (config *Config) BinaryName() string
- func (config *Config) ColorEnabled() ColorSetting
- func (config *Config) CurrentUser() (User, error)
- func (config *Config) Experimental() bool
- func (config *Config) HTTPSProxy() string
- func (config *Config) Locale() string
- func (config *Config) PluginHome() string
- func (config *Config) PluginRepos() []PluginRepos
- func (config *Config) Plugins() map[string]Plugin
- func (config *Config) SetOrganizationInformation(guid string, name string)
- func (config *Config) SetSpaceInformation(guid string, name string, allowSSH bool)
- func (config *Config) SetTargetInformation(api string, apiVersion string, auth string, loggregator string, doppler string, ...)
- func (config *Config) SetTokenInformation(accessToken string, refreshToken string, sshOAuthClient string)
- func (config *Config) StagingTimeout() time.Duration
- func (config *Config) StartupTimeout() time.Duration
- func (config *Config) Target() string
- func (config *Config) TargetedOrganization() Organization
- func (config *Config) TargetedSpace() Space
- type EnvOverride
- type Organization
- type Plugin
- type PluginCommand
- type PluginCommands
- type PluginRepos
- type PluginUsageDetails
- type PluginVersion
- type PluginsConfig
- type QuotaDefinition
- type Space
- type User
Constants ¶
const ( DefaultStagingTimeout = 15 * time.Minute DefaultStartupTimeout = 5 * time.Minute DefaultTarget = "" DefaultColorEnabled = "true" DefaultLocale = "" DefaultPluginRepoName = "CF-Community" DefaultPluginRepoURL = "https://plugins.cloudfoundry.org" )
Variables ¶
This section is empty.
Functions ¶
func ConfigFilePath ¶
func ConfigFilePath() string
ConfigFilePath returns the location of the config file
func WriteConfig ¶
WriteConfig creates the .cf directory and then writes the config.json. The location of .cf directory is written in the same way LoadConfig reads .cf directory.
Types ¶
type CFConfig ¶
type CFConfig struct { ConfigVersion int `json:"ConfigVersion"` Target string `json:"Target"` APIVersion string `json:"APIVersion"` AuthorizationEndpoint string `json:"AuthorizationEndpoint"` LoggregatorEndpoint string `json:"LoggregatorEndPoint"` DopplerEndpoint string `json:"DopplerEndPoint"` UAAEndpoint string `json:"UaaEndpoint"` RoutingEndpoint string `json:"RoutingAPIEndpoint"` AccessToken string `json:"AccessToken"` SSHOAuthClient string `json:"SSHOAuthClient"` RefreshToken string `json:"RefreshToken"` TargetedOrganization Organization `json:"OrganizationFields"` TargetedSpace Space `json:"SpaceFields"` SkipSSLValidation bool `json:"SSLDisabled"` AsyncTimeout int `json:"AsyncTimeout"` Trace string `json:"Trace"` ColorEnabled string `json:"ColorEnabled"` Locale string `json:"Locale"` PluginRepos []PluginRepos `json:"PluginRepos"` MinCLIVersion string `json:"MinCLIVersion"` MinRecommendedCLIVersion string `json:"MinRecommendedCLIVersion"` }
CFConfig represents .cf/config.json
type ColorSetting ¶
type ColorSetting int
ColorSetting is a trinary operator that represents if the display should have colors enabled, disabled, or automatically detected.
const ( // ColorDisbled means that no colors/bolding will be displayed ColorDisbled ColorSetting = iota // ColorEnabled means colors/bolding will be displayed ColorEnabled // ColorAuto means that the UI should decide if colors/bolding will be // enabled ColorAuto )
type Config ¶
type Config struct { // ConfigFile stores the configuration from the .cf/config ConfigFile CFConfig // ENV stores the configuration from os.ENV ENV EnvOverride // contains filtered or unexported fields }
Config combines the settings taken from the .cf/config.json, os.ENV, and the plugin config.
func LoadConfig ¶
LoadConfig loads the config from the .cf/config.json and os.ENV. If the config.json does not exists, it will use a default config in it's place.
The '.cf' directory will be read in one of the following locations on UNIX Systems:
- $CF_HOME/.cf if $CF_HOME is set
- $HOME/.cf as the default
The '.cf' directory will be read in one of the following locations on Windows Systems:
- CF_HOME\.cf if CF_HOME is set
- HOMEDRIVE\HOMEPATH\.cf if HOMEDRIVE or HOMEPATH is set
- USERPROFILE\.cf as the default
func (*Config) APIVersion ¶
APIVersion returns the CC API Version
func (*Config) BinaryName ¶
BinaryName returns the running name of the CF CLI
func (*Config) ColorEnabled ¶
func (config *Config) ColorEnabled() ColorSetting
ColorEnabled returns the color setting based off:
- The $CF_COLOR environment variable if set (0/1/t/f/true/false)
- The 'ColorEnabled' value in the .cf/config.json if set
- Defaults to ColorEnabled if nothing is set
func (*Config) CurrentUser ¶
CurrentUser returns user information decoded from the JWT access token in .cf/config.json
func (*Config) Experimental ¶
Experimental returns whether or not to run experimental CLI commands
func (*Config) HTTPSProxy ¶
HTTPSProxy returns the proxy url that the CLI should use. The url is based off of:
- The $https_proxy environment variable if set
- Defaults to the empty string
func (*Config) Locale ¶
Locale returns the locale/language the UI should be displayed in. This value is based off of:
- The 'Locale' setting in the .cf/config.json
- The $LC_ALL environment variable if set
- The $LANG environment variable if set
- Defaults to DefaultLocale
func (*Config) PluginHome ¶
PluginHome returns the plugin configuration directory based off:
- The $CF_PLUGIN_HOME environment variable if set
- Defaults to the home diretory (outlined in LoadConfig)/.cf/plugins
func (*Config) PluginRepos ¶
func (config *Config) PluginRepos() []PluginRepos
PluginRepos returns the currently configured plugin repositories from the .cf/config.json
func (*Config) SetOrganizationInformation ¶
SetOrganizationInformation sets the currently targeted organization
func (*Config) SetSpaceInformation ¶
SetSpaceInformation sets the currently targeted space
func (*Config) SetTargetInformation ¶
func (config *Config) SetTargetInformation(api string, apiVersion string, auth string, loggregator string, doppler string, uaa string, routing string, skipSSLValidation bool)
SetTargetInformation sets the currently targeted CC API and related other related API URLs
func (*Config) SetTokenInformation ¶
func (config *Config) SetTokenInformation(accessToken string, refreshToken string, sshOAuthClient string)
SetTokenInformation sets the current token/user information
func (*Config) StagingTimeout ¶
StagingTimeout returns the max time an application staging should take. The time is based off of:
- The $CF_STAGING_TIMEOUT environment variable if set
- Defaults to the DefaultStagingTimeout
func (*Config) StartupTimeout ¶
StartupTimeout returns the max time an application should take to start. The time is based off of:
- The $CF_STARTUP_TIMEOUT environment variable if set
- Defaults to the DefaultStartupTimeout
func (*Config) TargetedOrganization ¶
func (config *Config) TargetedOrganization() Organization
TargetedOrganization returns the currently targeted organization
func (*Config) TargetedSpace ¶
TargetedSpace returns the currently targeted space
type EnvOverride ¶
type EnvOverride struct { BinaryName string CFColor string CFHome string CFPluginHome string CFStagingTimeout string CFStartupTimeout string CFTrace string HTTPSProxy string Lang string LCAll string Experimental string }
EnvOverride represents all the environment variables read by the CF CLI
type Organization ¶
type Organization struct { GUID string `json:"GUID"` Name string `json:"Name"` QuotaDefinition QuotaDefinition `json:"QuotaDefinition"` }
Organization contains basic information about the targeted organization
type Plugin ¶
type Plugin struct { Location string `json:"Location"` Version PluginVersion `json:"Version"` Commands PluginCommands `json:"Commands"` }
Plugin represents the plugin as a whole, not be confused with PluginCommand
type PluginCommand ¶
type PluginCommand struct { Name string `json:"Name"` Alias string `json:"Alias"` HelpText string `json:"HelpText"` UsageDetails PluginUsageDetails `json:"UsageDetails"` }
PluginCommand represents an individual command inside a plugin
type PluginCommands ¶
type PluginCommands []PluginCommand
PluginCommands is a list of plugins that implements the sort.Interface
func (PluginCommands) Len ¶
func (p PluginCommands) Len() int
func (PluginCommands) Swap ¶
func (p PluginCommands) Swap(i int, j int)
type PluginRepos ¶
PluginRepos is a saved plugin repository
type PluginUsageDetails ¶
type PluginUsageDetails struct { Usage string `json:"Usage"` Options map[string]string `json:"Options"` }
PluginUsageDetails contains the usage metadata provided by the plugin
type PluginVersion ¶
type PluginVersion struct { Major int `json:"Major"` Minor int `json:"Minor"` Build int `json:"Build"` }
PluginVersion is the plugin version information
type PluginsConfig ¶
PluginsConfig represents the plugin configuration
type QuotaDefinition ¶
type QuotaDefinition struct { GUID string `json:"guid"` Name string `json:"name"` MemoryLimit int `json:"memory_limit"` InstanceMemoryLimit int `json:"instance_memory_limit"` TotalRoutes int `json:"total_routes"` TotalServices int `json:"total_services"` NonBasicServicesAllowed bool `json:"non_basic_services_allowed"` AppInstanceLimit int `json:"app_instance_limit"` TotalReservedRoutePorts int `json:"total_reserved_route_ports"` }
QuotaDefinition contains information about the organization's quota