diff --git a/.github/workflows/tagging.yml b/.github/workflows/tagging.yml index 09750decad..9bca7399f3 100644 --- a/.github/workflows/tagging.yml +++ b/.github/workflows/tagging.yml @@ -40,7 +40,7 @@ jobs: private-key: ${{ secrets.DECO_SDK_TAGGING_PRIVATE_KEY }} - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@v4 with: fetch-depth: 0 token: ${{ steps.generate-token.outputs.token }} diff --git a/cmd/account/ip-access-lists/ip-access-lists.go b/cmd/account/ip-access-lists/ip-access-lists.go index 32bf120db5..2d8a41df95 100755 --- a/cmd/account/ip-access-lists/ip-access-lists.go +++ b/cmd/account/ip-access-lists/ip-access-lists.go @@ -198,10 +198,10 @@ func newDelete() *cobra.Command { a := cmdctx.AccountClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No IP_ACCESS_LIST_ID argument specified. Loading names for Account Ip Access Lists drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No IP_ACCESS_LIST_ID argument specified. Loading names for Account Ip Access Lists drop-down." names, err := a.IpAccessLists.IpAccessListInfoLabelToListIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Account Ip Access Lists drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -266,10 +266,10 @@ func newGet() *cobra.Command { a := cmdctx.AccountClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No IP_ACCESS_LIST_ID argument specified. Loading names for Account Ip Access Lists drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No IP_ACCESS_LIST_ID argument specified. Loading names for Account Ip Access Lists drop-down." names, err := a.IpAccessLists.IpAccessListInfoLabelToListIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Account Ip Access Lists drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -516,10 +516,10 @@ func newUpdate() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No IP_ACCESS_LIST_ID argument specified. Loading names for Account Ip Access Lists drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No IP_ACCESS_LIST_ID argument specified. Loading names for Account Ip Access Lists drop-down." names, err := a.IpAccessLists.IpAccessListInfoLabelToListIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Account Ip Access Lists drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/account/log-delivery/log-delivery.go b/cmd/account/log-delivery/log-delivery.go index e94e419435..0a0f650936 100755 --- a/cmd/account/log-delivery/log-delivery.go +++ b/cmd/account/log-delivery/log-delivery.go @@ -225,10 +225,10 @@ func newGet() *cobra.Command { a := cmdctx.AccountClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No LOG_DELIVERY_CONFIGURATION_ID argument specified. Loading names for Log Delivery drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No LOG_DELIVERY_CONFIGURATION_ID argument specified. Loading names for Log Delivery drop-down." names, err := a.LogDelivery.LogDeliveryConfigurationConfigNameToConfigIdMap(ctx, billing.ListLogDeliveryRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Log Delivery drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/account/workspaces/workspaces.go b/cmd/account/workspaces/workspaces.go index 429407d431..0a738dfe17 100755 --- a/cmd/account/workspaces/workspaces.go +++ b/cmd/account/workspaces/workspaces.go @@ -171,12 +171,12 @@ func newCreate() *cobra.Command { if createSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *provisioning.Workspace) { statusMessage := i.WorkspaceStatusMessage - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -454,12 +454,12 @@ func newUpdate() *cobra.Command { if updateSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *provisioning.Workspace) { statusMessage := i.WorkspaceStatusMessage - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(updateTimeout) - sp.Close() + close(spinner) if err != nil { return err } diff --git a/cmd/workspace/alerts-v2/alerts-v2.go b/cmd/workspace/alerts-v2/alerts-v2.go index cffe976040..ed4ba7a0fe 100755 --- a/cmd/workspace/alerts-v2/alerts-v2.go +++ b/cmd/workspace/alerts-v2/alerts-v2.go @@ -181,10 +181,10 @@ func newGetAlert() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Alerts V2 drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Alerts V2 drop-down." names, err := w.AlertsV2.AlertV2DisplayNameToIdMap(ctx, sql.ListAlertsV2Request{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Alerts V2 drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -301,10 +301,10 @@ func newTrashAlert() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Alerts V2 drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Alerts V2 drop-down." names, err := w.AlertsV2.AlertV2DisplayNameToIdMap(ctx, sql.ListAlertsV2Request{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Alerts V2 drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/alerts/alerts.go b/cmd/workspace/alerts/alerts.go index 38c012d260..0e0e961056 100755 --- a/cmd/workspace/alerts/alerts.go +++ b/cmd/workspace/alerts/alerts.go @@ -145,10 +145,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Alerts drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Alerts drop-down." names, err := w.Alerts.ListAlertsResponseAlertDisplayNameToIdMap(ctx, sql.ListAlertsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Alerts drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -210,10 +210,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Alerts drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Alerts drop-down." names, err := w.Alerts.ListAlertsResponseAlertDisplayNameToIdMap(ctx, sql.ListAlertsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Alerts drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/apps/apps.go b/cmd/workspace/apps/apps.go index dd6f6b5dfa..a5be38b603 100755 --- a/cmd/workspace/apps/apps.go +++ b/cmd/workspace/apps/apps.go @@ -156,7 +156,7 @@ func newCreate() *cobra.Command { if createSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *apps.App) { if i.ComputeStatus == nil { return @@ -166,9 +166,9 @@ func newCreate() *cobra.Command { if i.ComputeStatus != nil { statusMessage = i.ComputeStatus.Message } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -296,8 +296,8 @@ func newCreateSpace() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for create-space to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for create-space to complete..." // Wait for completion. opts := api.WithTimeout(createSpaceTimeout) @@ -305,7 +305,7 @@ func newCreateSpace() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } @@ -412,7 +412,7 @@ func newCreateUpdate() *cobra.Command { if createUpdateSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *apps.AppUpdate) { if i.Status == nil { return @@ -422,9 +422,9 @@ func newCreateUpdate() *cobra.Command { if i.Status != nil { statusMessage = i.Status.Message } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createUpdateTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -574,8 +574,8 @@ func newDeleteSpace() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for delete-space to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for delete-space to complete..." // Wait for completion. opts := api.WithTimeout(deleteSpaceTimeout) @@ -584,7 +584,7 @@ func newDeleteSpace() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return nil } } @@ -676,7 +676,7 @@ func newDeploy() *cobra.Command { if deploySkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *apps.AppDeployment) { if i.Status == nil { return @@ -686,9 +686,9 @@ func newDeploy() *cobra.Command { if i.Status != nil { statusMessage = i.Status.Message } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(deployTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1396,7 +1396,7 @@ func newStart() *cobra.Command { if startSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *apps.App) { if i.ComputeStatus == nil { return @@ -1406,9 +1406,9 @@ func newStart() *cobra.Command { if i.ComputeStatus != nil { statusMessage = i.ComputeStatus.Message } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(startTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1477,7 +1477,7 @@ func newStop() *cobra.Command { if stopSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *apps.App) { if i.ComputeStatus == nil { return @@ -1487,9 +1487,9 @@ func newStop() *cobra.Command { if i.ComputeStatus != nil { statusMessage = i.ComputeStatus.Message } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(stopTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1786,8 +1786,8 @@ func newUpdateSpace() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for update-space to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for update-space to complete..." // Wait for completion. opts := api.WithTimeout(updateSpaceTimeout) @@ -1795,7 +1795,7 @@ func newUpdateSpace() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } diff --git a/cmd/workspace/clean-rooms/clean-rooms.go b/cmd/workspace/clean-rooms/clean-rooms.go index 3aea991abf..628e1ecaa2 100755 --- a/cmd/workspace/clean-rooms/clean-rooms.go +++ b/cmd/workspace/clean-rooms/clean-rooms.go @@ -121,13 +121,13 @@ func newCreate() *cobra.Command { if createSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *cleanrooms.CleanRoom) { status := i.Status statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createTimeout) - sp.Close() + close(spinner) if err != nil { return err } diff --git a/cmd/workspace/cluster-policies/cluster-policies.go b/cmd/workspace/cluster-policies/cluster-policies.go index 83df4ae311..33bfeef5b0 100755 --- a/cmd/workspace/cluster-policies/cluster-policies.go +++ b/cmd/workspace/cluster-policies/cluster-policies.go @@ -200,10 +200,10 @@ func newDelete() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No POLICY_ID argument specified. Loading names for Cluster Policies drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No POLICY_ID argument specified. Loading names for Cluster Policies drop-down." names, err := w.ClusterPolicies.PolicyNameToPolicyIdMap(ctx, compute.ListClusterPoliciesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Cluster Policies drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -304,10 +304,10 @@ func newEdit() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No POLICY_ID argument specified. Loading names for Cluster Policies drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No POLICY_ID argument specified. Loading names for Cluster Policies drop-down." names, err := w.ClusterPolicies.PolicyNameToPolicyIdMap(ctx, compute.ListClusterPoliciesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Cluster Policies drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -374,10 +374,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No POLICY_ID argument specified. Loading names for Cluster Policies drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No POLICY_ID argument specified. Loading names for Cluster Policies drop-down." names, err := w.ClusterPolicies.PolicyNameToPolicyIdMap(ctx, compute.ListClusterPoliciesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Cluster Policies drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -442,10 +442,10 @@ func newGetPermissionLevels() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_POLICY_ID argument specified. Loading names for Cluster Policies drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_POLICY_ID argument specified. Loading names for Cluster Policies drop-down." names, err := w.ClusterPolicies.PolicyNameToPolicyIdMap(ctx, compute.ListClusterPoliciesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Cluster Policies drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -511,10 +511,10 @@ func newGetPermissions() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_POLICY_ID argument specified. Loading names for Cluster Policies drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_POLICY_ID argument specified. Loading names for Cluster Policies drop-down." names, err := w.ClusterPolicies.PolicyNameToPolicyIdMap(ctx, compute.ListClusterPoliciesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Cluster Policies drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -649,10 +649,10 @@ func newSetPermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_POLICY_ID argument specified. Loading names for Cluster Policies drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_POLICY_ID argument specified. Loading names for Cluster Policies drop-down." names, err := w.ClusterPolicies.PolicyNameToPolicyIdMap(ctx, compute.ListClusterPoliciesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Cluster Policies drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -735,10 +735,10 @@ func newUpdatePermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_POLICY_ID argument specified. Loading names for Cluster Policies drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_POLICY_ID argument specified. Loading names for Cluster Policies drop-down." names, err := w.ClusterPolicies.PolicyNameToPolicyIdMap(ctx, compute.ListClusterPoliciesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Cluster Policies drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/clusters/clusters.go b/cmd/workspace/clusters/clusters.go index 64f2d81097..4c4067c588 100755 --- a/cmd/workspace/clusters/clusters.go +++ b/cmd/workspace/clusters/clusters.go @@ -307,12 +307,12 @@ func newCreate() *cobra.Command { if createSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *compute.ClusterDetails) { statusMessage := i.StateMessage - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -397,10 +397,10 @@ func newDelete() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -423,12 +423,12 @@ func newDelete() *cobra.Command { if deleteSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *compute.ClusterDetails) { statusMessage := i.StateMessage - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(deleteTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -583,12 +583,12 @@ func newEdit() *cobra.Command { if editSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *compute.ClusterDetails) { statusMessage := i.StateMessage - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(editTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -675,10 +675,10 @@ func newEvents() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -743,10 +743,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -811,10 +811,10 @@ func newGetPermissionLevels() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -880,10 +880,10 @@ func newGetPermissions() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1120,10 +1120,10 @@ func newPermanentDelete() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1214,10 +1214,10 @@ func newPin() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1319,10 +1319,10 @@ func newResize() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1346,12 +1346,12 @@ func newResize() *cobra.Command { if resizeSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *compute.ClusterDetails) { statusMessage := i.StateMessage - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(resizeTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1436,10 +1436,10 @@ func newRestart() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1463,12 +1463,12 @@ func newRestart() *cobra.Command { if restartSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *compute.ClusterDetails) { statusMessage := i.StateMessage - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(restartTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1537,10 +1537,10 @@ func newSetPermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1686,10 +1686,10 @@ func newStart() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1712,12 +1712,12 @@ func newStart() *cobra.Command { if startSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *compute.ClusterDetails) { statusMessage := i.StateMessage - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(startTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1792,10 +1792,10 @@ func newUnpin() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1932,12 +1932,12 @@ func newUpdate() *cobra.Command { if updateSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *compute.ClusterDetails) { statusMessage := i.StateMessage - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(updateTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -2005,10 +2005,10 @@ func newUpdatePermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CLUSTER_ID argument specified. Loading names for Clusters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CLUSTER_ID argument specified. Loading names for Clusters drop-down." names, err := w.Clusters.ClusterDetailsClusterNameToClusterIdMap(ctx, compute.ListClustersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Clusters drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/connections/connections.go b/cmd/workspace/connections/connections.go index f7a291e51c..1bbc6a027a 100755 --- a/cmd/workspace/connections/connections.go +++ b/cmd/workspace/connections/connections.go @@ -154,10 +154,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Connections drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Connections drop-down." names, err := w.Connections.ConnectionInfoNameToFullNameMap(ctx, catalog.ListConnectionsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Connections drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -222,10 +222,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Connections drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Connections drop-down." names, err := w.Connections.ConnectionInfoNameToFullNameMap(ctx, catalog.ListConnectionsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Connections drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/consumer-listings/consumer-listings.go b/cmd/workspace/consumer-listings/consumer-listings.go index 43e7ea74c0..3ca063b9c6 100755 --- a/cmd/workspace/consumer-listings/consumer-listings.go +++ b/cmd/workspace/consumer-listings/consumer-listings.go @@ -123,10 +123,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Consumer Listings drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Consumer Listings drop-down." names, err := w.ConsumerListings.ListingSummaryNameToIdMap(ctx, marketplace.ListListingsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Consumer Listings drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -260,10 +260,10 @@ func newSearch() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No QUERY argument specified. Loading names for Consumer Listings drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No QUERY argument specified. Loading names for Consumer Listings drop-down." names, err := w.ConsumerListings.ListingSummaryNameToIdMap(ctx, marketplace.ListListingsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Consumer Listings drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/consumer-providers/consumer-providers.go b/cmd/workspace/consumer-providers/consumer-providers.go index 058accfa1f..51f73460aa 100755 --- a/cmd/workspace/consumer-providers/consumer-providers.go +++ b/cmd/workspace/consumer-providers/consumer-providers.go @@ -121,10 +121,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Consumer Providers drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Consumer Providers drop-down." names, err := w.ConsumerProviders.ProviderInfoNameToIdMap(ctx, marketplace.ListConsumerProvidersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Consumer Providers drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/database/database.go b/cmd/workspace/database/database.go index a84f9a0971..ea3e71c750 100755 --- a/cmd/workspace/database/database.go +++ b/cmd/workspace/database/database.go @@ -235,13 +235,13 @@ func newCreateDatabaseInstance() *cobra.Command { if createDatabaseInstanceSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *database.DatabaseInstance) { status := i.State statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createDatabaseInstanceTimeout) - sp.Close() + close(spinner) if err != nil { return err } diff --git a/cmd/workspace/forecasting/forecasting.go b/cmd/workspace/forecasting/forecasting.go index 2581fee940..582e7dba09 100755 --- a/cmd/workspace/forecasting/forecasting.go +++ b/cmd/workspace/forecasting/forecasting.go @@ -160,13 +160,13 @@ func newCreateExperiment() *cobra.Command { if createExperimentSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *ml.ForecastingExperiment) { status := i.State statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createExperimentTimeout) - sp.Close() + close(spinner) if err != nil { return err } diff --git a/cmd/workspace/functions/functions.go b/cmd/workspace/functions/functions.go index 9ecf0948b3..a80461e18a 100755 --- a/cmd/workspace/functions/functions.go +++ b/cmd/workspace/functions/functions.go @@ -155,10 +155,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Functions drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Functions drop-down." names, err := w.Functions.FunctionInfoNameToFullNameMap(ctx, catalog.ListFunctionsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Functions drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -232,10 +232,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Functions drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Functions drop-down." names, err := w.Functions.FunctionInfoNameToFullNameMap(ctx, catalog.ListFunctionsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Functions drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -398,10 +398,10 @@ func newUpdate() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Functions drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Functions drop-down." names, err := w.Functions.FunctionInfoNameToFullNameMap(ctx, catalog.ListFunctionsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Functions drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/genie/genie.go b/cmd/workspace/genie/genie.go index 07975cbd7d..82f7773bb7 100755 --- a/cmd/workspace/genie/genie.go +++ b/cmd/workspace/genie/genie.go @@ -146,13 +146,13 @@ func newCreateMessage() *cobra.Command { if createMessageSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *dashboards.GenieMessage) { status := i.Status statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createMessageTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1670,13 +1670,13 @@ func newStartConversation() *cobra.Command { if startConversationSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *dashboards.GenieMessage) { status := i.Status statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(startConversationTimeout) - sp.Close() + close(spinner) if err != nil { return err } diff --git a/cmd/workspace/git-credentials/git-credentials.go b/cmd/workspace/git-credentials/git-credentials.go index 9d3cae1b4f..a1a6045221 100755 --- a/cmd/workspace/git-credentials/git-credentials.go +++ b/cmd/workspace/git-credentials/git-credentials.go @@ -170,10 +170,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CREDENTIAL_ID argument specified. Loading names for Git Credentials drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CREDENTIAL_ID argument specified. Loading names for Git Credentials drop-down." names, err := w.GitCredentials.CredentialInfoGitProviderToCredentialIdMap(ctx, workspace.ListCredentialsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Git Credentials drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -243,10 +243,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No CREDENTIAL_ID argument specified. Loading names for Git Credentials drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No CREDENTIAL_ID argument specified. Loading names for Git Credentials drop-down." names, err := w.GitCredentials.CredentialInfoGitProviderToCredentialIdMap(ctx, workspace.ListCredentialsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Git Credentials drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/global-init-scripts/global-init-scripts.go b/cmd/workspace/global-init-scripts/global-init-scripts.go index 610ba87269..604f8f0ff7 100755 --- a/cmd/workspace/global-init-scripts/global-init-scripts.go +++ b/cmd/workspace/global-init-scripts/global-init-scripts.go @@ -167,10 +167,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No SCRIPT_ID argument specified. Loading names for Global Init Scripts drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No SCRIPT_ID argument specified. Loading names for Global Init Scripts drop-down." names, err := w.GlobalInitScripts.GlobalInitScriptDetailsNameToScriptIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Global Init Scripts drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -235,10 +235,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No SCRIPT_ID argument specified. Loading names for Global Init Scripts drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No SCRIPT_ID argument specified. Loading names for Global Init Scripts drop-down." names, err := w.GlobalInitScripts.GlobalInitScriptDetailsNameToScriptIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Global Init Scripts drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/instance-pools/instance-pools.go b/cmd/workspace/instance-pools/instance-pools.go index 640058629d..3b6b673b3a 100755 --- a/cmd/workspace/instance-pools/instance-pools.go +++ b/cmd/workspace/instance-pools/instance-pools.go @@ -224,10 +224,10 @@ func newDelete() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down." names, err := w.InstancePools.InstancePoolAndStatsInstancePoolNameToInstancePoolIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Instance Pools drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -393,10 +393,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down." names, err := w.InstancePools.InstancePoolAndStatsInstancePoolNameToInstancePoolIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Instance Pools drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -461,10 +461,10 @@ func newGetPermissionLevels() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down." names, err := w.InstancePools.InstancePoolAndStatsInstancePoolNameToInstancePoolIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Instance Pools drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -530,10 +530,10 @@ func newGetPermissions() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down." names, err := w.InstancePools.InstancePoolAndStatsInstancePoolNameToInstancePoolIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Instance Pools drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -656,10 +656,10 @@ func newSetPermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down." names, err := w.InstancePools.InstancePoolAndStatsInstancePoolNameToInstancePoolIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Instance Pools drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -742,10 +742,10 @@ func newUpdatePermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No INSTANCE_POOL_ID argument specified. Loading names for Instance Pools drop-down." names, err := w.InstancePools.InstancePoolAndStatsInstancePoolNameToInstancePoolIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Instance Pools drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/ip-access-lists/ip-access-lists.go b/cmd/workspace/ip-access-lists/ip-access-lists.go index b1a8e61ffa..f1b99754a7 100755 --- a/cmd/workspace/ip-access-lists/ip-access-lists.go +++ b/cmd/workspace/ip-access-lists/ip-access-lists.go @@ -199,10 +199,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No IP_ACCESS_LIST_ID argument specified. Loading names for Ip Access Lists drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No IP_ACCESS_LIST_ID argument specified. Loading names for Ip Access Lists drop-down." names, err := w.IpAccessLists.IpAccessListInfoLabelToListIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Ip Access Lists drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -267,10 +267,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No IP_ACCESS_LIST_ID argument specified. Loading names for Ip Access Lists drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No IP_ACCESS_LIST_ID argument specified. Loading names for Ip Access Lists drop-down." names, err := w.IpAccessLists.IpAccessListInfoLabelToListIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Ip Access Lists drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -521,10 +521,10 @@ func newUpdate() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No IP_ACCESS_LIST_ID argument specified. Loading names for Ip Access Lists drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No IP_ACCESS_LIST_ID argument specified. Loading names for Ip Access Lists drop-down." names, err := w.IpAccessLists.IpAccessListInfoLabelToListIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Ip Access Lists drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/jobs/jobs.go b/cmd/workspace/jobs/jobs.go index 93e8f29bb4..a1ac4abf05 100755 --- a/cmd/workspace/jobs/jobs.go +++ b/cmd/workspace/jobs/jobs.go @@ -209,10 +209,10 @@ func newCancelRun() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No RUN_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No RUN_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -239,7 +239,7 @@ func newCancelRun() *cobra.Command { if cancelRunSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *jobs.Run) { if i.State == nil { return @@ -249,9 +249,9 @@ func newCancelRun() *cobra.Command { if i.State != nil { statusMessage = i.State.StateMessage } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(cancelRunTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -389,10 +389,10 @@ func newDelete() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No JOB_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No JOB_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -488,10 +488,10 @@ func newDeleteRun() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No RUN_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No RUN_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -563,10 +563,10 @@ func newExportRun() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No RUN_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No RUN_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -646,10 +646,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No JOB_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No JOB_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -717,10 +717,10 @@ func newGetPermissionLevels() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No JOB_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No JOB_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -786,10 +786,10 @@ func newGetPermissions() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No JOB_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No JOB_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -868,10 +868,10 @@ func newGetRun() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No RUN_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No RUN_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -948,10 +948,10 @@ func newGetRunOutput() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No RUN_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No RUN_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1181,10 +1181,10 @@ func newRepairRun() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No RUN_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No RUN_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1211,7 +1211,7 @@ func newRepairRun() *cobra.Command { if repairRunSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *jobs.Run) { if i.State == nil { return @@ -1221,9 +1221,9 @@ func newRepairRun() *cobra.Command { if i.State != nil { statusMessage = i.State.StateMessage } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(repairRunTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1384,10 +1384,10 @@ func newRunNow() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No JOB_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No JOB_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1414,7 +1414,7 @@ func newRunNow() *cobra.Command { if runNowSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *jobs.Run) { if i.State == nil { return @@ -1424,9 +1424,9 @@ func newRunNow() *cobra.Command { if i.State != nil { statusMessage = i.State.StateMessage } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(runNowTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1495,10 +1495,10 @@ func newSetPermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No JOB_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No JOB_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1619,7 +1619,7 @@ func newSubmit() *cobra.Command { if submitSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *jobs.Run) { if i.State == nil { return @@ -1629,9 +1629,9 @@ func newSubmit() *cobra.Command { if i.State != nil { statusMessage = i.State.StateMessage } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(submitTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1711,10 +1711,10 @@ func newUpdate() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No JOB_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No JOB_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1802,10 +1802,10 @@ func newUpdatePermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No JOB_ID argument specified. Loading names for Jobs drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No JOB_ID argument specified. Loading names for Jobs drop-down." names, err := w.Jobs.BaseJobSettingsNameToJobIdMap(ctx, jobs.ListJobsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Jobs drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/online-tables/online-tables.go b/cmd/workspace/online-tables/online-tables.go index fde740b410..a5c670b279 100755 --- a/cmd/workspace/online-tables/online-tables.go +++ b/cmd/workspace/online-tables/online-tables.go @@ -107,13 +107,13 @@ func newCreate() *cobra.Command { if createSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *catalog.OnlineTable) { status := i.UnityCatalogProvisioningState statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createTimeout) - sp.Close() + close(spinner) if err != nil { return err } diff --git a/cmd/workspace/pipelines/pipelines.go b/cmd/workspace/pipelines/pipelines.go index 56138c45a1..023d08bb05 100755 --- a/cmd/workspace/pipelines/pipelines.go +++ b/cmd/workspace/pipelines/pipelines.go @@ -238,10 +238,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -301,10 +301,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -369,10 +369,10 @@ func newGetPermissionLevels() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -438,10 +438,10 @@ func newGetPermissions() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -569,10 +569,10 @@ func newListPipelineEvents() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -691,10 +691,10 @@ func newListUpdates() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -778,10 +778,10 @@ func newSetPermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -877,10 +877,10 @@ func newStartUpdate() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -949,10 +949,10 @@ func newStop() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -974,12 +974,12 @@ func newStop() *cobra.Command { if stopSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *pipelines.GetPipelineResponse) { statusMessage := i.Cause - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(stopTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1076,10 +1076,10 @@ func newUpdate() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1162,10 +1162,10 @@ func newUpdatePermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PIPELINE_ID argument specified. Loading names for Pipelines drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PIPELINE_ID argument specified. Loading names for Pipelines drop-down." names, err := w.Pipelines.PipelineStateInfoNameToPipelineIdMap(ctx, pipelines.ListPipelinesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Pipelines drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/postgres/postgres.go b/cmd/workspace/postgres/postgres.go index a8a2e6904d..2ab401d3f2 100755 --- a/cmd/workspace/postgres/postgres.go +++ b/cmd/workspace/postgres/postgres.go @@ -176,8 +176,8 @@ func newCreateBranch() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for create-branch to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for create-branch to complete..." // Wait for completion. opts := api.WithTimeout(createBranchTimeout) @@ -185,7 +185,7 @@ func newCreateBranch() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } @@ -302,8 +302,8 @@ func newCreateDatabase() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for create-database to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for create-database to complete..." // Wait for completion. opts := api.WithTimeout(createDatabaseTimeout) @@ -311,7 +311,7 @@ func newCreateDatabase() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } @@ -427,8 +427,8 @@ func newCreateEndpoint() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for create-endpoint to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for create-endpoint to complete..." // Wait for completion. opts := api.WithTimeout(createEndpointTimeout) @@ -436,7 +436,7 @@ func newCreateEndpoint() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } @@ -550,8 +550,8 @@ func newCreateProject() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for create-project to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for create-project to complete..." // Wait for completion. opts := api.WithTimeout(createProjectTimeout) @@ -559,7 +559,7 @@ func newCreateProject() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } @@ -673,8 +673,8 @@ func newCreateRole() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for create-role to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for create-role to complete..." // Wait for completion. opts := api.WithTimeout(createRoleTimeout) @@ -682,7 +682,7 @@ func newCreateRole() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } @@ -772,8 +772,8 @@ func newDeleteBranch() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for delete-branch to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for delete-branch to complete..." // Wait for completion. opts := api.WithTimeout(deleteBranchTimeout) @@ -782,7 +782,7 @@ func newDeleteBranch() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return nil } } @@ -873,8 +873,8 @@ func newDeleteDatabase() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for delete-database to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for delete-database to complete..." // Wait for completion. opts := api.WithTimeout(deleteDatabaseTimeout) @@ -883,7 +883,7 @@ func newDeleteDatabase() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return nil } } @@ -973,8 +973,8 @@ func newDeleteEndpoint() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for delete-endpoint to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for delete-endpoint to complete..." // Wait for completion. opts := api.WithTimeout(deleteEndpointTimeout) @@ -983,7 +983,7 @@ func newDeleteEndpoint() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return nil } } @@ -1073,8 +1073,8 @@ func newDeleteProject() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for delete-project to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for delete-project to complete..." // Wait for completion. opts := api.WithTimeout(deleteProjectTimeout) @@ -1083,7 +1083,7 @@ func newDeleteProject() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return nil } } @@ -1178,8 +1178,8 @@ func newDeleteRole() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for delete-role to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for delete-role to complete..." // Wait for completion. opts := api.WithTimeout(deleteRoleTimeout) @@ -1188,7 +1188,7 @@ func newDeleteRole() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return nil } } @@ -2020,8 +2020,8 @@ func newUpdateBranch() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for update-branch to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for update-branch to complete..." // Wait for completion. opts := api.WithTimeout(updateBranchTimeout) @@ -2029,7 +2029,7 @@ func newUpdateBranch() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } @@ -2146,8 +2146,8 @@ func newUpdateDatabase() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for update-database to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for update-database to complete..." // Wait for completion. opts := api.WithTimeout(updateDatabaseTimeout) @@ -2155,7 +2155,7 @@ func newUpdateDatabase() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } @@ -2272,8 +2272,8 @@ func newUpdateEndpoint() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for update-endpoint to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for update-endpoint to complete..." // Wait for completion. opts := api.WithTimeout(updateEndpointTimeout) @@ -2281,7 +2281,7 @@ func newUpdateEndpoint() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } @@ -2398,8 +2398,8 @@ func newUpdateProject() *cobra.Command { } // Show spinner while waiting for completion. - sp := cmdio.NewSpinner(ctx) - sp.Update("Waiting for update-project to complete...") + spinner := cmdio.Spinner(ctx) + spinner <- "Waiting for update-project to complete..." // Wait for completion. opts := api.WithTimeout(updateProjectTimeout) @@ -2407,7 +2407,7 @@ func newUpdateProject() *cobra.Command { if err != nil { return err } - sp.Close() + close(spinner) return cmdio.Render(ctx, response) } } diff --git a/cmd/workspace/provider-exchange-filters/provider-exchange-filters.go b/cmd/workspace/provider-exchange-filters/provider-exchange-filters.go index 4c62276bf6..d38d324689 100755 --- a/cmd/workspace/provider-exchange-filters/provider-exchange-filters.go +++ b/cmd/workspace/provider-exchange-filters/provider-exchange-filters.go @@ -132,10 +132,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Provider Exchange Filters drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Provider Exchange Filters drop-down." names, err := w.ProviderExchangeFilters.ExchangeFilterNameToIdMap(ctx, marketplace.ListExchangeFiltersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Provider Exchange Filters drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/provider-files/provider-files.go b/cmd/workspace/provider-files/provider-files.go index 69de0a23ec..22054f0875 100755 --- a/cmd/workspace/provider-files/provider-files.go +++ b/cmd/workspace/provider-files/provider-files.go @@ -136,10 +136,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No FILE_ID argument specified. Loading names for Provider Files drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No FILE_ID argument specified. Loading names for Provider Files drop-down." names, err := w.ProviderFiles.FileInfoDisplayNameToIdMap(ctx, marketplace.ListFilesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Provider Files drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -201,10 +201,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No FILE_ID argument specified. Loading names for Provider Files drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No FILE_ID argument specified. Loading names for Provider Files drop-down." names, err := w.ProviderFiles.FileInfoDisplayNameToIdMap(ctx, marketplace.ListFilesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Provider Files drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/provider-listings/provider-listings.go b/cmd/workspace/provider-listings/provider-listings.go index 9686737d2e..f01c4d836b 100755 --- a/cmd/workspace/provider-listings/provider-listings.go +++ b/cmd/workspace/provider-listings/provider-listings.go @@ -134,10 +134,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Provider Listings drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Provider Listings drop-down." names, err := w.ProviderListings.ListingSummaryNameToIdMap(ctx, marketplace.GetListingsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Provider Listings drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -199,10 +199,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Provider Listings drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Provider Listings drop-down." names, err := w.ProviderListings.ListingSummaryNameToIdMap(ctx, marketplace.GetListingsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Provider Listings drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/provider-providers/provider-providers.go b/cmd/workspace/provider-providers/provider-providers.go index 68f0198ac9..126e671d15 100755 --- a/cmd/workspace/provider-providers/provider-providers.go +++ b/cmd/workspace/provider-providers/provider-providers.go @@ -133,10 +133,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Provider Providers drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Provider Providers drop-down." names, err := w.ProviderProviders.ProviderInfoNameToIdMap(ctx, marketplace.ListProvidersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Provider Providers drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -198,10 +198,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Provider Providers drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Provider Providers drop-down." names, err := w.ProviderProviders.ProviderInfoNameToIdMap(ctx, marketplace.ListProvidersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Provider Providers drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/providers/providers.go b/cmd/workspace/providers/providers.go index a7fa13a235..3b4b49aa52 100755 --- a/cmd/workspace/providers/providers.go +++ b/cmd/workspace/providers/providers.go @@ -170,10 +170,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Providers drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Providers drop-down." names, err := w.Providers.ProviderInfoNameToMetastoreIdMap(ctx, sharing.ListProvidersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Providers drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -240,10 +240,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Providers drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Providers drop-down." names, err := w.Providers.ProviderInfoNameToMetastoreIdMap(ctx, sharing.ListProvidersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Providers drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -434,10 +434,10 @@ func newListShares() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Providers drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Providers drop-down." names, err := w.Providers.ProviderInfoNameToMetastoreIdMap(ctx, sharing.ListProvidersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Providers drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -522,10 +522,10 @@ func newUpdate() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Providers drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Providers drop-down." names, err := w.Providers.ProviderInfoNameToMetastoreIdMap(ctx, sharing.ListProvidersRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Providers drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/queries/queries.go b/cmd/workspace/queries/queries.go index 64c94f0df0..faf1021d08 100755 --- a/cmd/workspace/queries/queries.go +++ b/cmd/workspace/queries/queries.go @@ -146,10 +146,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Queries drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Queries drop-down." names, err := w.Queries.ListQueryObjectsResponseQueryDisplayNameToIdMap(ctx, sql.ListQueriesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Queries drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -211,10 +211,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Queries drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Queries drop-down." names, err := w.Queries.ListQueryObjectsResponseQueryDisplayNameToIdMap(ctx, sql.ListQueriesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Queries drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -335,10 +335,10 @@ func newListVisualizations() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Queries drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Queries drop-down." names, err := w.Queries.ListQueryObjectsResponseQueryDisplayNameToIdMap(ctx, sql.ListQueriesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Queries drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/registered-models/registered-models.go b/cmd/workspace/registered-models/registered-models.go index f60b1d10a1..eb39df31be 100755 --- a/cmd/workspace/registered-models/registered-models.go +++ b/cmd/workspace/registered-models/registered-models.go @@ -201,10 +201,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No FULL_NAME argument specified. Loading names for Registered Models drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No FULL_NAME argument specified. Loading names for Registered Models drop-down." names, err := w.RegisteredModels.RegisteredModelInfoNameToFullNameMap(ctx, catalog.ListRegisteredModelsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Registered Models drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -340,10 +340,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No FULL_NAME argument specified. Loading names for Registered Models drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No FULL_NAME argument specified. Loading names for Registered Models drop-down." names, err := w.RegisteredModels.RegisteredModelInfoNameToFullNameMap(ctx, catalog.ListRegisteredModelsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Registered Models drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -609,10 +609,10 @@ func newUpdate() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No FULL_NAME argument specified. Loading names for Registered Models drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No FULL_NAME argument specified. Loading names for Registered Models drop-down." names, err := w.RegisteredModels.RegisteredModelInfoNameToFullNameMap(ctx, catalog.ListRegisteredModelsRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Registered Models drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/repos/repos.go b/cmd/workspace/repos/repos.go index 24075353f0..5aec0b5fc3 100755 --- a/cmd/workspace/repos/repos.go +++ b/cmd/workspace/repos/repos.go @@ -177,10 +177,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No REPO_ID argument specified. Loading names for Repos drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No REPO_ID argument specified. Loading names for Repos drop-down." names, err := w.Repos.RepoInfoPathToIdMap(ctx, workspace.ListReposRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Repos drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -248,10 +248,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No REPO_ID argument specified. Loading names for Repos drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No REPO_ID argument specified. Loading names for Repos drop-down." names, err := w.Repos.RepoInfoPathToIdMap(ctx, workspace.ListReposRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Repos drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -319,10 +319,10 @@ func newGetPermissionLevels() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No REPO_ID argument specified. Loading names for Repos drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No REPO_ID argument specified. Loading names for Repos drop-down." names, err := w.Repos.RepoInfoPathToIdMap(ctx, workspace.ListReposRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Repos drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -388,10 +388,10 @@ func newGetPermissions() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No REPO_ID argument specified. Loading names for Repos drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No REPO_ID argument specified. Loading names for Repos drop-down." names, err := w.Repos.RepoInfoPathToIdMap(ctx, workspace.ListReposRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Repos drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -527,10 +527,10 @@ func newSetPermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No REPO_ID argument specified. Loading names for Repos drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No REPO_ID argument specified. Loading names for Repos drop-down." names, err := w.Repos.RepoInfoPathToIdMap(ctx, workspace.ListReposRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Repos drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -615,10 +615,10 @@ func newUpdate() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No REPO_ID argument specified. Loading names for Repos drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No REPO_ID argument specified. Loading names for Repos drop-down." names, err := w.Repos.RepoInfoPathToIdMap(ctx, workspace.ListReposRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Repos drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -704,10 +704,10 @@ func newUpdatePermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No REPO_ID argument specified. Loading names for Repos drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No REPO_ID argument specified. Loading names for Repos drop-down." names, err := w.Repos.RepoInfoPathToIdMap(ctx, workspace.ListReposRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Repos drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/serving-endpoints/serving-endpoints.go b/cmd/workspace/serving-endpoints/serving-endpoints.go index a25c6df59b..4a22825e5a 100755 --- a/cmd/workspace/serving-endpoints/serving-endpoints.go +++ b/cmd/workspace/serving-endpoints/serving-endpoints.go @@ -213,13 +213,13 @@ func newCreate() *cobra.Command { if createSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *serving.ServingEndpointDetailed) { status := i.State.ConfigUpdate statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -299,13 +299,13 @@ func newCreateProvisionedThroughputEndpoint() *cobra.Command { if createProvisionedThroughputEndpointSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *serving.ServingEndpointDetailed) { status := i.State.ConfigUpdate statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createProvisionedThroughputEndpointTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1298,13 +1298,13 @@ func newUpdateConfig() *cobra.Command { if updateConfigSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *serving.ServingEndpointDetailed) { status := i.State.ConfigUpdate statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(updateConfigTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1540,13 +1540,13 @@ func newUpdateProvisionedThroughputEndpointConfig() *cobra.Command { if updateProvisionedThroughputEndpointConfigSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *serving.ServingEndpointDetailed) { status := i.State.ConfigUpdate statusMessage := fmt.Sprintf("current status: %s", status) - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(updateProvisionedThroughputEndpointConfigTimeout) - sp.Close() + close(spinner) if err != nil { return err } diff --git a/cmd/workspace/token-management/token-management.go b/cmd/workspace/token-management/token-management.go index 83ef087924..18057aaf5d 100755 --- a/cmd/workspace/token-management/token-management.go +++ b/cmd/workspace/token-management/token-management.go @@ -106,10 +106,10 @@ func newCreateOboToken() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No APPLICATION_ID argument specified. Loading names for Token Management drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No APPLICATION_ID argument specified. Loading names for Token Management drop-down." names, err := w.TokenManagement.TokenInfoCommentToTokenIdMap(ctx, settings.ListTokenManagementRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Token Management drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -176,10 +176,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No TOKEN_ID argument specified. Loading names for Token Management drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No TOKEN_ID argument specified. Loading names for Token Management drop-down." names, err := w.TokenManagement.TokenInfoCommentToTokenIdMap(ctx, settings.ListTokenManagementRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Token Management drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -244,10 +244,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No TOKEN_ID argument specified. Loading names for Token Management drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No TOKEN_ID argument specified. Loading names for Token Management drop-down." names, err := w.TokenManagement.TokenInfoCommentToTokenIdMap(ctx, settings.ListTokenManagementRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Token Management drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/tokens/tokens.go b/cmd/workspace/tokens/tokens.go index 715db5485d..27dc5dc496 100755 --- a/cmd/workspace/tokens/tokens.go +++ b/cmd/workspace/tokens/tokens.go @@ -173,10 +173,10 @@ func newDelete() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No TOKEN_ID argument specified. Loading names for Tokens drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No TOKEN_ID argument specified. Loading names for Tokens drop-down." names, err := w.Tokens.PublicTokenInfoCommentToTokenIdMap(ctx) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Tokens drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/vector-search-endpoints/vector-search-endpoints.go b/cmd/workspace/vector-search-endpoints/vector-search-endpoints.go index d11b5f2215..df959d8114 100755 --- a/cmd/workspace/vector-search-endpoints/vector-search-endpoints.go +++ b/cmd/workspace/vector-search-endpoints/vector-search-endpoints.go @@ -131,7 +131,7 @@ func newCreateEndpoint() *cobra.Command { if createEndpointSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *vectorsearch.EndpointInfo) { if i.EndpointStatus == nil { return @@ -141,9 +141,9 @@ func newCreateEndpoint() *cobra.Command { if i.EndpointStatus != nil { statusMessage = i.EndpointStatus.Message } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createEndpointTimeout) - sp.Close() + close(spinner) if err != nil { return err } diff --git a/cmd/workspace/volumes/volumes.go b/cmd/workspace/volumes/volumes.go index 15988f01c2..6346b7e688 100755 --- a/cmd/workspace/volumes/volumes.go +++ b/cmd/workspace/volumes/volumes.go @@ -205,10 +205,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Volumes drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Volumes drop-down." names, err := w.Volumes.VolumeInfoNameToVolumeIdMap(ctx, catalog.ListVolumesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Volumes drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -354,10 +354,10 @@ func newRead() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Volumes drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Volumes drop-down." names, err := w.Volumes.VolumeInfoNameToVolumeIdMap(ctx, catalog.ListVolumesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Volumes drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -448,10 +448,10 @@ func newUpdate() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Volumes drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Volumes drop-down." names, err := w.Volumes.VolumeInfoNameToVolumeIdMap(ctx, catalog.ListVolumesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Volumes drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/warehouses/warehouses.go b/cmd/workspace/warehouses/warehouses.go index 236e72b3f8..c498a390ff 100755 --- a/cmd/workspace/warehouses/warehouses.go +++ b/cmd/workspace/warehouses/warehouses.go @@ -134,7 +134,7 @@ func newCreate() *cobra.Command { if createSkipWait { return cmdio.Render(ctx, wait.Response) } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *sql.GetWarehouseResponse) { if i.Health == nil { return @@ -144,9 +144,9 @@ func newCreate() *cobra.Command { if i.Health != nil { statusMessage = i.Health.Summary } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(createTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -290,10 +290,10 @@ func newDelete() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -363,10 +363,10 @@ func newDeleteDefaultWarehouseOverride() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -466,10 +466,10 @@ func newEdit() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -491,7 +491,7 @@ func newEdit() *cobra.Command { if editSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *sql.GetWarehouseResponse) { if i.Health == nil { return @@ -501,9 +501,9 @@ func newEdit() *cobra.Command { if i.Health != nil { statusMessage = i.Health.Summary } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(editTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -553,10 +553,10 @@ func newGet() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -626,10 +626,10 @@ func newGetDefaultWarehouseOverride() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No NAME argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No NAME argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -694,10 +694,10 @@ func newGetPermissionLevels() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No WAREHOUSE_ID argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No WAREHOUSE_ID argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -763,10 +763,10 @@ func newGetPermissions() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No WAREHOUSE_ID argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No WAREHOUSE_ID argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -997,10 +997,10 @@ func newSetPermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No WAREHOUSE_ID argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No WAREHOUSE_ID argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1150,10 +1150,10 @@ func newStart() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1175,7 +1175,7 @@ func newStart() *cobra.Command { if startSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *sql.GetWarehouseResponse) { if i.Health == nil { return @@ -1185,9 +1185,9 @@ func newStart() *cobra.Command { if i.Health != nil { statusMessage = i.Health.Summary } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(startTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1243,10 +1243,10 @@ func newStop() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No ID argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No ID argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1268,7 +1268,7 @@ func newStop() *cobra.Command { if stopSkipWait { return nil } - sp := cmdio.NewSpinner(ctx) + spinner := cmdio.Spinner(ctx) info, err := wait.OnProgress(func(i *sql.GetWarehouseResponse) { if i.Health == nil { return @@ -1278,9 +1278,9 @@ func newStop() *cobra.Command { if i.Health != nil { statusMessage = i.Health.Summary } - sp.Update(statusMessage) + spinner <- statusMessage }).GetWithTimeout(stopTimeout) - sp.Close() + close(spinner) if err != nil { return err } @@ -1368,10 +1368,10 @@ func newUpdateDefaultWarehouseOverride() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No TYPE argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No TYPE argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -1464,10 +1464,10 @@ func newUpdatePermissions() *cobra.Command { } } if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No WAREHOUSE_ID argument specified. Loading names for Warehouses drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No WAREHOUSE_ID argument specified. Loading names for Warehouses drop-down." names, err := w.Warehouses.EndpointInfoNameToIdMap(ctx, sql.ListWarehousesRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Warehouses drop-down. Please manually specify required arguments. Original error: %w", err) } diff --git a/cmd/workspace/workspace/workspace.go b/cmd/workspace/workspace/workspace.go index fa77cef4ae..bff7825fee 100755 --- a/cmd/workspace/workspace/workspace.go +++ b/cmd/workspace/workspace/workspace.go @@ -116,10 +116,10 @@ func newDelete() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PATH argument specified. Loading names for Workspace drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PATH argument specified. Loading names for Workspace drop-down." names, err := w.Workspace.ObjectInfoPathToObjectIdMap(ctx, workspace.ListWorkspaceRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Workspace drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -204,10 +204,10 @@ func newExport() *cobra.Command { w := cmdctx.WorkspaceClient(ctx) if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PATH argument specified. Loading names for Workspace drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PATH argument specified. Loading names for Workspace drop-down." names, err := w.Workspace.ObjectInfoPathToObjectIdMap(ctx, workspace.ListWorkspaceRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Workspace drop-down. Please manually specify required arguments. Original error: %w", err) } @@ -639,10 +639,10 @@ func newMkdirs() *cobra.Command { } } else { if len(args) == 0 { - sp := cmdio.NewSpinner(ctx) - sp.Update("No PATH argument specified. Loading names for Workspace drop-down.") + promptSpinner := cmdio.Spinner(ctx) + promptSpinner <- "No PATH argument specified. Loading names for Workspace drop-down." names, err := w.Workspace.ObjectInfoPathToObjectIdMap(ctx, workspace.ListWorkspaceRequest{}) - sp.Close() + close(promptSpinner) if err != nil { return fmt.Errorf("failed to load names for Workspace drop-down. Please manually specify required arguments. Original error: %w", err) }