From 3724d81413827347b1b75697b2993d717fb3e5cc Mon Sep 17 00:00:00 2001 From: Ammar Bandukwala Date: Mon, 6 Feb 2023 14:35:48 -0600 Subject: [PATCH] chore: simplify error handling in template push (#6065) --- cli/templatepush.go | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/cli/templatepush.go b/cli/templatepush.go index 11bf8209c3..1a6aef3f3d 100644 --- a/cli/templatepush.go +++ b/cli/templatepush.go @@ -35,14 +35,10 @@ func (pf *templateUploadFlags) stdin() bool { func (pf *templateUploadFlags) upload(cmd *cobra.Command, client *codersdk.Client) (*codersdk.UploadResponse, error) { var ( - content io.Reader - pipeErrCh = make(chan error, 1) + content io.Reader ) if pf.stdin() { content = cmd.InOrStdin() - // No piping if reading from stdin. - pipeErrCh <- nil - close(pipeErrCh) } else { prettyDir := prettyDirectoryPath(pf.directory) _, err := cliui.Prompt(cmd, cliui.PromptOptions{ @@ -56,11 +52,8 @@ func (pf *templateUploadFlags) upload(cmd *cobra.Command, client *codersdk.Clien pipeReader, pipeWriter := io.Pipe() go func() { - defer pipeWriter.Close() - defer close(pipeErrCh) - bufWr := bufio.NewWriter(pipeWriter) - defer bufWr.Flush() - pipeErrCh <- provisionersdk.Tar(bufWr, pf.directory, provisionersdk.TemplateArchiveLimit) + err := provisionersdk.Tar(pipeWriter, pf.directory, provisionersdk.TemplateArchiveLimit) + _ = pipeWriter.CloseWithError(err) }() defer pipeReader.Close() content = pipeReader @@ -72,13 +65,10 @@ func (pf *templateUploadFlags) upload(cmd *cobra.Command, client *codersdk.Clien spin.Start() defer spin.Stop() - resp, err := client.Upload(cmd.Context(), codersdk.ContentTypeTar, content) + resp, err := client.Upload(cmd.Context(), codersdk.ContentTypeTar, bufio.NewReader(content)) if err != nil { return nil, xerrors.Errorf("upload: %w", err) } - if err = <-pipeErrCh; err != nil { - return nil, xerrors.Errorf("pipe: %w", err) - } return &resp, nil }