From ceba2c896b88eb6ad66629498c4f961454c94cdb Mon Sep 17 00:00:00 2001 From: JP Ungaretti Date: Thu, 28 Apr 2022 18:38:46 +0000 Subject: [PATCH] Use safeClose instead of Close --- pkg/cmd/codespace/jupyter.go | 4 ++-- pkg/cmd/codespace/logs.go | 2 +- pkg/cmd/codespace/ports.go | 2 +- pkg/cmd/codespace/ssh.go | 7 +++---- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/pkg/cmd/codespace/jupyter.go b/pkg/cmd/codespace/jupyter.go index 280eeb410..77bedb301 100644 --- a/pkg/cmd/codespace/jupyter.go +++ b/pkg/cmd/codespace/jupyter.go @@ -27,7 +27,7 @@ func newJupyterCmd(app *App) *cobra.Command { return jupyterCmd } -func (a *App) Jupyter(ctx context.Context, codespaceName string) error { +func (a *App) Jupyter(ctx context.Context, codespaceName string) (err error) { // Ensure all child tasks (e.g. port forwarding) terminate before return. ctx, cancel := context.WithCancel(ctx) defer cancel() @@ -41,7 +41,7 @@ func (a *App) Jupyter(ctx context.Context, codespaceName string) error { if err != nil { return err } - defer session.Close() + defer safeClose(session, &err) a.StartProgressIndicatorWithLabel("Starting JupyterLab on codespace") serverPort, serverUrl, err := session.StartJupyterServer(ctx) diff --git a/pkg/cmd/codespace/logs.go b/pkg/cmd/codespace/logs.go index 5bd4b2c5c..b3289de41 100644 --- a/pkg/cmd/codespace/logs.go +++ b/pkg/cmd/codespace/logs.go @@ -45,7 +45,7 @@ func (a *App) Logs(ctx context.Context, codespaceName string, follow bool) (err if err != nil { return err } - defer session.Close() + defer safeClose(session, &err) // Ensure local port is listening before client (getPostCreateOutput) connects. listen, err := net.Listen("tcp", "127.0.0.1:0") // arbitrary port diff --git a/pkg/cmd/codespace/ports.go b/pkg/cmd/codespace/ports.go index cbe4e8389..9bbe28f79 100644 --- a/pkg/cmd/codespace/ports.go +++ b/pkg/cmd/codespace/ports.go @@ -59,7 +59,7 @@ func (a *App) ListPorts(ctx context.Context, codespaceName string, exporter cmdu if err != nil { return err } - defer session.Close() + defer safeClose(session, &err) a.StartProgressIndicatorWithLabel("Fetching ports") ports, err := session.GetSharedServers(ctx) diff --git a/pkg/cmd/codespace/ssh.go b/pkg/cmd/codespace/ssh.go index 2549a8b06..633bbe252 100644 --- a/pkg/cmd/codespace/ssh.go +++ b/pkg/cmd/codespace/ssh.go @@ -125,7 +125,7 @@ func (a *App) SSH(ctx context.Context, sshArgs []string, opts sshOptions) (err e if err != nil { return err } - defer session.Close() + defer safeClose(session, &err) a.StartProgressIndicatorWithLabel("Fetching SSH Details") remoteSSHServerPort, sshUser, err := session.StartSSHServer(ctx) @@ -187,11 +187,10 @@ func (a *App) SSH(ctx context.Context, sshArgs []string, opts sshOptions) (err e } } -func (a *App) printOpenSSHConfig(ctx context.Context, opts sshOptions) error { +func (a *App) printOpenSSHConfig(ctx context.Context, opts sshOptions) (err error) { ctx, cancel := context.WithCancel(ctx) defer cancel() - var err error var csList []*api.Codespace if opts.codespace == "" { a.StartProgressIndicatorWithLabel("Fetching codespaces") @@ -232,7 +231,7 @@ func (a *App) printOpenSSHConfig(ctx context.Context, opts sshOptions) error { if err != nil { result.err = fmt.Errorf("error connecting to codespace: %w", err) } else { - defer session.Close() + defer safeClose(session, &err) _, result.user, err = session.StartSSHServer(ctx) if err != nil {