@@ -13,7 +13,10 @@ import (
1313)
1414
1515func (r * RootCmd )start ()* serpent.Command {
16- var parameterFlags workspaceParameterFlags
16+ var (
17+ parameterFlags workspaceParameterFlags
18+ bflags buildFlags
19+ )
1720
1821client := new (codersdk.Client )
1922cmd := & serpent.Command {
@@ -45,12 +48,12 @@ func (r *RootCmd) start() *serpent.Command {
4548)
4649build = workspace .LatestBuild
4750default :
48- build ,err = startWorkspace (inv ,client ,workspace ,parameterFlags ,WorkspaceStart )
51+ build ,err = startWorkspace (inv ,client ,workspace ,parameterFlags ,bflags , WorkspaceStart )
4952// It's possible for a workspace build to fail due to the template requiring starting
5053// workspaces with the active version.
5154if cerr ,ok := codersdk .AsError (err );ok && cerr .StatusCode ()== http .StatusForbidden {
5255_ ,_ = fmt .Fprintln (inv .Stdout ,"Unable to start the workspace with the template version from the last build. Policy may require you to restart with the current active template version." )
53- build ,err = startWorkspace (inv ,client ,workspace ,parameterFlags ,WorkspaceUpdate )
56+ build ,err = startWorkspace (inv ,client ,workspace ,parameterFlags ,bflags , WorkspaceUpdate )
5457if err != nil {
5558return xerrors .Errorf ("start workspace with active template version: %w" ,err )
5659}
@@ -73,11 +76,12 @@ func (r *RootCmd) start() *serpent.Command {
7376}
7477
7578cmd .Options = append (cmd .Options ,parameterFlags .allOptions ()... )
79+ cmd .Options = append (cmd .Options ,bflags .cliOptions ()... )
7680
7781return cmd
7882}
7983
80- func buildWorkspaceStartRequest (inv * serpent.Invocation ,client * codersdk.Client ,workspace codersdk.Workspace ,parameterFlags workspaceParameterFlags ,action WorkspaceCLIAction ) (codersdk.CreateWorkspaceBuildRequest ,error ) {
84+ func buildWorkspaceStartRequest (inv * serpent.Invocation ,client * codersdk.Client ,workspace codersdk.Workspace ,parameterFlags workspaceParameterFlags ,buildFlags buildFlags , action WorkspaceCLIAction ) (codersdk.CreateWorkspaceBuildRequest ,error ) {
8185version := workspace .LatestBuild .TemplateVersionID
8286
8387if workspace .AutomaticUpdates == codersdk .AutomaticUpdatesAlways || action == WorkspaceUpdate {
@@ -124,14 +128,19 @@ func buildWorkspaceStartRequest(inv *serpent.Invocation, client *codersdk.Client
124128return codersdk.CreateWorkspaceBuildRequest {},err
125129}
126130
127- return codersdk.CreateWorkspaceBuildRequest {
131+ wbr := codersdk.CreateWorkspaceBuildRequest {
128132Transition :codersdk .WorkspaceTransitionStart ,
129133RichParameterValues :buildParameters ,
130134TemplateVersionID :version ,
131- },nil
135+ }
136+ if buildFlags .provisionerLogDebug {
137+ wbr .LogLevel = codersdk .ProvisionerLogLevelDebug
138+ }
139+
140+ return wbr ,nil
132141}
133142
134- func startWorkspace (inv * serpent.Invocation ,client * codersdk.Client ,workspace codersdk.Workspace ,parameterFlags workspaceParameterFlags ,action WorkspaceCLIAction ) (codersdk.WorkspaceBuild ,error ) {
143+ func startWorkspace (inv * serpent.Invocation ,client * codersdk.Client ,workspace codersdk.Workspace ,parameterFlags workspaceParameterFlags ,buildFlags buildFlags , action WorkspaceCLIAction ) (codersdk.WorkspaceBuild ,error ) {
135144if workspace .DormantAt != nil {
136145_ ,_ = fmt .Fprintln (inv .Stdout ,"Activating dormant workspace..." )
137146err := client .UpdateWorkspaceDormancy (inv .Context (),workspace .ID , codersdk.UpdateWorkspaceDormancy {
@@ -141,7 +150,7 @@ func startWorkspace(inv *serpent.Invocation, client *codersdk.Client, workspace
141150return codersdk.WorkspaceBuild {},xerrors .Errorf ("activate workspace: %w" ,err )
142151}
143152}
144- req ,err := buildWorkspaceStartRequest (inv ,client ,workspace ,parameterFlags ,action )
153+ req ,err := buildWorkspaceStartRequest (inv ,client ,workspace ,parameterFlags ,buildFlags , action )
145154if err != nil {
146155return codersdk.WorkspaceBuild {},err
147156}