@@ -51,20 +51,21 @@ var (
51
51
)
52
52
53
53
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>'."
68
69
69
70
envNoVersionCheck = "CODER_NO_VERSION_WARNING"
70
71
envNoFeatureWarning = "CODER_NO_FEATURE_WARNING"
@@ -434,6 +435,14 @@ func (r *RootCmd) Command(subcommands []*clibase.Cmd) (*clibase.Cmd, error) {
434
435
Value : clibase .StringOf (& r .globalConfig ),
435
436
Group : globalGroup ,
436
437
},
438
+ {
439
+ Flag : varOrganizationSelect ,
440
+ FlagShorthand : "z" ,
441
+ Env : "CODER_ORGANIZATION" ,
442
+ Description : "Select which organization (uuid or name) to use This overrides what is present in the config file." ,
443
+ Value : clibase .StringOf (& r .organizationSelect ),
444
+ Group : globalGroup ,
445
+ },
437
446
{
438
447
Flag : "version" ,
439
448
// 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) {
455
464
456
465
// RootCmd contains parameters and helpers useful to all commands.
457
466
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
472
482
473
483
noVersionCheck bool
474
484
noFeatureWarning bool
@@ -701,8 +711,8 @@ func (r *RootCmd) createAgentClient() (*agentsdk.Client, error) {
701
711
// CurrentOrganization returns the currently active organization for the authenticated user.
702
712
func CurrentOrganization (r * RootCmd , inv * clibase.Invocation , client * codersdk.Client ) (codersdk.Organization , error ) {
703
713
conf := r .createConfig ()
704
- selected := ""
705
- if conf .Organization ().Exists () {
714
+ selected := r . organizationSelect
715
+ if selected == "" && conf .Organization ().Exists () {
706
716
org , err := conf .Organization ().Read ()
707
717
if err != nil {
708
718
return codersdk.Organization {}, fmt .Errorf ("read selected organization from config file %q: %w" , conf .Organization (), err )
0 commit comments