Skip to content

Commit 73b0170

Browse files
committed
fix: Panic if Terraform fails installation
Closes #1039.
1 parent 9faa39a commit 73b0170

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

cli/start.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,10 @@ func start() *cobra.Command {
200200
}
201201
}
202202

203+
errCh := make(chan error, 1)
203204
provisionerDaemons := make([]*provisionerd.Server, 0)
204205
for i := 0; uint8(i) < provisionerDaemonCount; i++ {
205-
daemonClose, err := newProvisionerDaemon(cmd.Context(), client, logger, cacheDir)
206+
daemonClose, err := newProvisionerDaemon(cmd.Context(), client, logger, cacheDir, errCh)
206207
if err != nil {
207208
return xerrors.Errorf("create provisioner daemon: %w", err)
208209
}
@@ -214,7 +215,6 @@ func start() *cobra.Command {
214215
}
215216
}()
216217

217-
errCh := make(chan error, 1)
218218
shutdownConnsCtx, shutdownConns := context.WithCancel(cmd.Context())
219219
defer shutdownConns()
220220
go func() {
@@ -411,7 +411,7 @@ func createFirstUser(cmd *cobra.Command, client *codersdk.Client, cfg config.Roo
411411
return nil
412412
}
413413

414-
func newProvisionerDaemon(ctx context.Context, client *codersdk.Client, logger slog.Logger, cacheDir string) (*provisionerd.Server, error) {
414+
func newProvisionerDaemon(ctx context.Context, client *codersdk.Client, logger slog.Logger, cacheDir string, errChan chan error) (*provisionerd.Server, error) {
415415
err := os.MkdirAll(cacheDir, 0700)
416416
if err != nil {
417417
return nil, xerrors.Errorf("mkdir %q: %w", cacheDir, err)
@@ -427,7 +427,7 @@ func newProvisionerDaemon(ctx context.Context, client *codersdk.Client, logger s
427427
Logger: logger,
428428
})
429429
if err != nil {
430-
panic(err)
430+
errChan <- err
431431
}
432432
}()
433433

0 commit comments

Comments
 (0)