Skip to content

Commit 46f0339

Browse files
committed
0 (compilation) problems left...
1 parent c4e8925 commit 46f0339

27 files changed

+353
-166
lines changed

cli/agent.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
"github.com/coder/coder/codersdk/agentsdk"
2828
)
2929

30-
func (r *RootCmd) workspaceAgent() *clibase.Cmd {
30+
func (_ *RootCmd) workspaceAgent() *clibase.Cmd {
3131
var (
3232
auth string
3333
logDir string

cli/configssh.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ func (r *RootCmd) configSSH() *clibase.Cmd {
139139
dryRun bool
140140
skipProxyCommand bool
141141
)
142-
var client *codersdk.Client
142+
client := new(codersdk.Client)
143143
cmd := &clibase.Cmd{
144144
Annotations: workspaceCommand,
145145
Use: "config-ssh",

cli/create.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func (r *RootCmd) create() *clibase.Cmd {
2424
stopAfter time.Duration
2525
workspaceName string
2626
)
27-
var client *codersdk.Client
27+
client := new(codersdk.Client)
2828
cmd := &clibase.Cmd{
2929
Annotations: workspaceCommand,
3030
Use: "create [name]",

cli/delete.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
// nolint
1313
func (r *RootCmd) deleteWorkspace() *clibase.Cmd {
1414
var orphan bool
15-
var client *codersdk.Client
15+
client := new(codersdk.Client)
1616
cmd := &clibase.Cmd{
1717
Annotations: workspaceCommand,
1818
Use: "delete <workspace>",

cli/parameterslist.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func (r *RootCmd) parameterList() *clibase.Cmd {
1717
cliui.JSONFormat(),
1818
)
1919

20-
var client *codersdk.Client
20+
client := new(codersdk.Client)
2121

2222
cmd := &clibase.Cmd{
2323
Use: "list",

cli/ping.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func (r *RootCmd) ping() *clibase.Cmd {
2323
verbose bool
2424
)
2525

26-
var client *codersdk.Client
26+
client := new(codersdk.Client)
2727
cmd := &clibase.Cmd{
2828
Annotations: workspaceCommand,
2929
Use: "ping <workspace>",

cli/portforward.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func (r *RootCmd) portForward() *clibase.Cmd {
2525
tcpForwards []string // <port>:<port>
2626
udpForwards []string // <port>:<port>
2727
)
28-
var client *codersdk.Client
28+
client := new(codersdk.Client)
2929
cmd := &clibase.Cmd{
3030
Use: "port-forward <workspace>",
3131
Short: "Forward ports from machine to a workspace",

cli/publickey.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212

1313
func (r *RootCmd) publickey() *clibase.Cmd {
1414
var reset bool
15-
var client *codersdk.Client
15+
client := new(codersdk.Client)
1616
cmd := &clibase.Cmd{
1717
Use: "publickey",
1818
Aliases: []string{"pubkey"},

cli/restart.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
)
1111

1212
func (r *RootCmd) restart() *clibase.Cmd {
13-
var client *codersdk.Client
13+
client := new(codersdk.Client)
1414
cmd := &clibase.Cmd{
1515
Annotations: workspaceCommand,
1616
Use: "restart <workspace>",

cli/root.go

Lines changed: 97 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,32 @@ func Core() []*clibase.Cmd {
7070
r := &RootCmd{}
7171
// Please re-sort this list alphabetically if you change it!
7272
return []*clibase.Cmd{
73-
show(r),
73+
r.dotfiles(),
74+
r.login(),
75+
r.logout(),
76+
r.portForward(),
77+
r.publickey(),
78+
r.resetPassword(),
79+
r.state(),
80+
r.templates(),
81+
r.users(),
82+
r.version(),
83+
84+
// Workspace Commands
85+
r.configSSH(),
86+
r.create(),
87+
r.deleteWorkspace(),
88+
r.list(),
89+
r.schedules(),
90+
r.show(),
91+
r.speedtest(),
92+
r.ssh(),
93+
r.start(),
94+
r.stop(),
95+
r.update(),
96+
97+
// Hidden
98+
r.workspaceAgent(),
7499
}
75100
}
76101

@@ -250,8 +275,8 @@ func LoggerFromContext(ctx context.Context) (slog.Logger, bool) {
250275
return l, ok
251276
}
252277

253-
// versionCmd prints the coder version
254-
func (r *RootCmd) versionCmd() *clibase.Cmd {
278+
// version prints the coder version
279+
func (r *RootCmd) version() *clibase.Cmd {
255280
return &clibase.Cmd{
256281
Use: "version",
257282
Short: "Show coder version",
@@ -302,98 +327,100 @@ type RootCmd struct {
302327

303328
// UseClient returns a new client from the command context.
304329
// It reads from global configuration files if flags are not set.
305-
func (r *RootCmd) UseClient(c *codersdk.Client) clibase.MiddlewareFunc {
330+
func (r *RootCmd) UseClient(client *codersdk.Client) clibase.MiddlewareFunc {
306331
return func(next clibase.HandlerFunc) clibase.HandlerFunc {
307-
return clibase.HandlerFunc(
308-
func(i *clibase.Invokation) error {
309-
root := r.createConfig()
310-
var err error
311-
if r.clientURL.String() == "" {
312-
rawURL, err := root.URL().Read()
313-
// If the configuration files are absent, the user is logged out
314-
if os.IsNotExist(err) {
315-
return (errUnauthenticated)
316-
}
317-
if err != nil {
318-
return err
319-
}
320-
321-
r.clientURL, err = url.Parse(strings.TrimSpace(rawURL))
322-
if err != nil {
323-
return err
324-
}
332+
return func(i *clibase.Invokation) error {
333+
root := r.createConfig()
334+
var err error
335+
if r.clientURL.String() == "" {
336+
rawURL, err := root.URL().Read()
337+
// If the configuration files are absent, the user is logged out
338+
if os.IsNotExist(err) {
339+
return (errUnauthenticated)
325340
}
326-
327-
if r.token == "" {
328-
r.token, err = root.Session().Read()
329-
// If the configuration files are absent, the user is logged out
330-
if os.IsNotExist(err) {
331-
return (errUnauthenticated)
332-
}
333-
if err != nil {
334-
return err
335-
}
341+
if err != nil {
342+
return err
336343
}
337344

338-
client, err := r.createUnauthenticatedClient(r.clientURL)
345+
r.clientURL, err = url.Parse(strings.TrimSpace(rawURL))
339346
if err != nil {
340347
return err
341348
}
349+
}
342350

343-
client.SetSessionToken(r.token)
344-
345-
// We send these requests in parallel to minimize latency.
346-
var (
347-
versionErr = make(chan error)
348-
warningErr = make(chan error)
349-
)
350-
go func() {
351-
versionErr <- r.checkVersions(i, client)
352-
close(versionErr)
353-
}()
354-
355-
go func() {
356-
warningErr <- r.checkWarnings(i, client)
357-
close(warningErr)
358-
}()
359-
360-
if err = <-versionErr; err != nil {
361-
// Just log the error here. We never want to fail a command
362-
// due to a pre-run.
363-
_, _ = fmt.Fprintf(i.Stderr,
364-
cliui.Styles.Warn.Render("check versions error: %s"), err)
365-
_, _ = fmt.Fprintln(i.Stderr)
351+
if r.token == "" {
352+
r.token, err = root.Session().Read()
353+
// If the configuration files are absent, the user is logged out
354+
if os.IsNotExist(err) {
355+
return (errUnauthenticated)
366356
}
367-
368-
if err = <-warningErr; err != nil {
369-
// Same as above
370-
_, _ = fmt.Fprintf(i.Stderr,
371-
cliui.Styles.Warn.Render("check entitlement warnings error: %s"), err)
372-
_, _ = fmt.Fprintln(i.Stderr)
357+
if err != nil {
358+
return err
373359
}
360+
}
374361

375-
*c = *client
376-
return nil
377-
},
378-
)
362+
err = r.initClient(client)
363+
if err != nil {
364+
return err
365+
}
366+
367+
client.SetSessionToken(r.token)
368+
369+
// We send these requests in parallel to minimize latency.
370+
var (
371+
versionErr = make(chan error)
372+
warningErr = make(chan error)
373+
)
374+
go func() {
375+
versionErr <- r.checkVersions(i, client)
376+
close(versionErr)
377+
}()
378+
379+
go func() {
380+
warningErr <- r.checkWarnings(i, client)
381+
close(warningErr)
382+
}()
383+
384+
if err = <-versionErr; err != nil {
385+
// Just log the error here. We never want to fail a command
386+
// due to a pre-run.
387+
_, _ = fmt.Fprintf(i.Stderr,
388+
cliui.Styles.Warn.Render("check versions error: %s"), err)
389+
_, _ = fmt.Fprintln(i.Stderr)
390+
}
391+
392+
if err = <-warningErr; err != nil {
393+
// Same as above
394+
_, _ = fmt.Fprintf(i.Stderr,
395+
cliui.Styles.Warn.Render("check entitlement warnings error: %s"), err)
396+
_, _ = fmt.Fprintln(i.Stderr)
397+
}
398+
399+
return nil
400+
}
379401
}
380402
}
381403

382-
func (r *RootCmd) createUnauthenticatedClient(serverURL *url.URL) (*codersdk.Client, error) {
383-
client := codersdk.New(serverURL)
404+
func (r *RootCmd) initClient(client *codersdk.Client) error {
384405
transport := &headerTransport{
385406
transport: http.DefaultTransport,
386407
headers: map[string]string{},
387408
}
388409
for _, header := range r.header {
389410
parts := strings.SplitN(header, "=", 2)
390411
if len(parts) < 2 {
391-
return nil, xerrors.Errorf("split header %q had less than two parts", header)
412+
return xerrors.Errorf("split header %q had less than two parts", header)
392413
}
393414
transport.headers[parts[0]] = parts[1]
394415
}
395416
client.HTTPClient.Transport = transport
396-
return client, nil
417+
return nil
418+
}
419+
420+
func (r *RootCmd) createUnauthenticatedClient(serverURL *url.URL) (*codersdk.Client, error) {
421+
var client codersdk.Client
422+
r.initClient(&client)
423+
return &client, nil
397424
}
398425

399426
// createAgentClient returns a new client from the command context.

0 commit comments

Comments
 (0)