Skip to content

Commit b1151b0

Browse files
committed
Global flag for selecting the org
1 parent cad75c2 commit b1151b0

File tree

1 file changed

+40
-30
lines changed

1 file changed

+40
-30
lines changed

cli/root.go

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -51,20 +51,21 @@ var (
5151
)
5252

5353
const (
54-
varURL = "url"
55-
varToken = "token"
56-
varAgentToken = "agent-token"
57-
varAgentTokenFile = "agent-token-file"
58-
varAgentURL = "agent-url"
59-
varHeader = "header"
60-
varHeaderCommand = "header-command"
61-
varNoOpen = "no-open"
62-
varNoVersionCheck = "no-version-warning"
63-
varNoFeatureWarning = "no-feature-warning"
64-
varForceTty = "force-tty"
65-
varVerbose = "verbose"
66-
varDisableDirect = "disable-direct-connections"
67-
notLoggedInMessage = "You are not logged in. Try logging in using 'coder login <url>'."
54+
varURL = "url"
55+
varToken = "token"
56+
varAgentToken = "agent-token"
57+
varAgentTokenFile = "agent-token-file"
58+
varAgentURL = "agent-url"
59+
varHeader = "header"
60+
varHeaderCommand = "header-command"
61+
varNoOpen = "no-open"
62+
varNoVersionCheck = "no-version-warning"
63+
varNoFeatureWarning = "no-feature-warning"
64+
varForceTty = "force-tty"
65+
varVerbose = "verbose"
66+
varOrganizationSelect = "organization"
67+
varDisableDirect = "disable-direct-connections"
68+
notLoggedInMessage = "You are not logged in. Try logging in using 'coder login <url>'."
6869

6970
envNoVersionCheck = "CODER_NO_VERSION_WARNING"
7071
envNoFeatureWarning = "CODER_NO_FEATURE_WARNING"
@@ -434,6 +435,14 @@ func (r *RootCmd) Command(subcommands []*clibase.Cmd) (*clibase.Cmd, error) {
434435
Value: clibase.StringOf(&r.globalConfig),
435436
Group: globalGroup,
436437
},
438+
{
439+
Flag: varOrganizationSelect,
440+
FlagShorthand: "z",
441+
Env: "CODER_ORGANIZATION",
442+
Description: "Select which organization (uuid or name) to use as default. This overrides what is present in the config file.",
443+
Value: clibase.StringOf(&r.organizationSelect),
444+
Group: globalGroup,
445+
},
437446
{
438447
Flag: "version",
439448
// This was requested by a customer to assist with their migration.
@@ -455,20 +464,21 @@ func (r *RootCmd) Command(subcommands []*clibase.Cmd) (*clibase.Cmd, error) {
455464

456465
// RootCmd contains parameters and helpers useful to all commands.
457466
type RootCmd struct {
458-
clientURL *url.URL
459-
token string
460-
globalConfig string
461-
header []string
462-
headerCommand string
463-
agentToken string
464-
agentTokenFile string
465-
agentURL *url.URL
466-
forceTTY bool
467-
noOpen bool
468-
verbose bool
469-
versionFlag bool
470-
disableDirect bool
471-
debugHTTP bool
467+
clientURL *url.URL
468+
token string
469+
globalConfig string
470+
header []string
471+
headerCommand string
472+
agentToken string
473+
agentTokenFile string
474+
agentURL *url.URL
475+
forceTTY bool
476+
noOpen bool
477+
verbose bool
478+
organizationSelect string
479+
versionFlag bool
480+
disableDirect bool
481+
debugHTTP bool
472482

473483
noVersionCheck bool
474484
noFeatureWarning bool
@@ -701,8 +711,8 @@ func (r *RootCmd) createAgentClient() (*agentsdk.Client, error) {
701711
// CurrentOrganization returns the currently active organization for the authenticated user.
702712
func CurrentOrganization(r *RootCmd, inv *clibase.Invocation, client *codersdk.Client) (codersdk.Organization, error) {
703713
conf := r.createConfig()
704-
selected := ""
705-
if conf.Organization().Exists() {
714+
selected := r.organizationSelect
715+
if selected == "" && conf.Organization().Exists() {
706716
org, err := conf.Organization().Read()
707717
if err != nil {
708718
return codersdk.Organization{}, fmt.Errorf("read selected organization from config file %q: %w", conf.Organization(), err)

0 commit comments

Comments
 (0)