package cli import ( "time" "github.com/spf13/cobra" "github.com/coder/coder/cli/cliui" "github.com/coder/coder/codersdk" ) func stop() *cobra.Command { cmd := &cobra.Command{ Annotations: workspaceCommand, Use: "stop ", Short: "Build a workspace with the stop state", Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { _, err := cliui.Prompt(cmd, cliui.PromptOptions{ Text: "Confirm stop workspace?", IsConfirm: true, }) if err != nil { return err } client, err := createClient(cmd) if err != nil { return err } workspace, err := namedWorkspace(cmd, client, args[0]) if err != nil { return err } before := time.Now() build, err := client.CreateWorkspaceBuild(cmd.Context(), workspace.ID, codersdk.CreateWorkspaceBuildRequest{ Transition: codersdk.WorkspaceTransitionStop, }) if err != nil { return err } return cliui.WorkspaceBuild(cmd.Context(), cmd.OutOrStdout(), client, build.ID, before) }, } cliui.AllowSkipPrompt(cmd) return cmd }