Use progress runner a few times

This commit is contained in:
JP Ungaretti 2023-01-12 22:56:33 +00:00
parent 216d3bf912
commit 5879923b4f
3 changed files with 31 additions and 31 deletions

View file

@ -28,20 +28,6 @@ func newJupyterCmd(app *App) *cobra.Command {
return jupyterCmd
}
func startJupyterServer(a *App, ctx context.Context, session *liveshare.Session) (port int, url string, err error) {
a.StartProgressIndicatorWithLabel("Starting JupyterLab on codespace")
defer a.StopProgressIndicator()
invoker, err := rpc.CreateInvoker(ctx, session)
if err != nil {
return
}
defer safeClose(session, &err)
port, url, err = invoker.StartJupyterServer(ctx)
return
}
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)
@ -58,7 +44,17 @@ func (a *App) Jupyter(ctx context.Context, codespaceName string) (err error) {
}
defer safeClose(session, &err)
serverPort, serverUrl, err := startJupyterServer(a, ctx, session)
serverPort, serverUrl := 0, ""
err = a.RunWithProgress("Starting JupyterLab on codespace", func() error {
invoker, err := rpc.CreateInvoker(ctx, session)
if err != nil {
return err
}
defer safeClose(invoker, &err)
serverPort, serverUrl, err = invoker.StartJupyterServer(ctx)
return err
})
if err != nil {
return err
}

View file

@ -56,15 +56,17 @@ func (a *App) Logs(ctx context.Context, codespaceName string, follow bool) (err
defer listen.Close()
localPort := listen.Addr().(*net.TCPAddr).Port
a.StartProgressIndicatorWithLabel("Fetching SSH Details")
invoker, err := rpc.CreateInvoker(ctx, session)
if err != nil {
return err
}
defer safeClose(invoker, &err)
remoteSSHServerPort, sshUser := 0, ""
err = a.RunWithProgress("Fetching SSH Details", func() error {
invoker, err := rpc.CreateInvoker(ctx, session)
if err != nil {
return err
}
defer safeClose(invoker, &err)
remoteSSHServerPort, sshUser, err := invoker.StartSSHServer(ctx)
a.StopProgressIndicator()
remoteSSHServerPort, sshUser, err = invoker.StartSSHServer(ctx)
return err
})
if err != nil {
return fmt.Errorf("error getting ssh server details: %w", err)
}

View file

@ -173,15 +173,17 @@ func (a *App) SSH(ctx context.Context, sshArgs []string, opts sshOptions) (err e
}
defer safeClose(session, &err)
a.StartProgressIndicatorWithLabel("Fetching SSH Details")
invoker, err := rpc.CreateInvoker(ctx, session)
if err != nil {
return err
}
defer safeClose(invoker, &err)
remoteSSHServerPort, sshUser := 0, ""
err = a.RunWithProgress("Fetching SSH Details", func() error {
invoker, err := rpc.CreateInvoker(ctx, session)
if err != nil {
return err
}
defer safeClose(invoker, &err)
remoteSSHServerPort, sshUser, err := invoker.StartSSHServerWithOptions(ctx, startSSHOptions)
a.StopProgressIndicator()
remoteSSHServerPort, sshUser, err = invoker.StartSSHServerWithOptions(ctx, startSSHOptions)
return err
})
if err != nil {
return fmt.Errorf("error getting ssh server details: %w", err)
}