@@ -35,14 +35,10 @@ func (pf *templateUploadFlags) stdin() bool {
35
35
36
36
func (pf * templateUploadFlags ) upload (cmd * cobra.Command , client * codersdk.Client ) (* codersdk.UploadResponse , error ) {
37
37
var (
38
- content io.Reader
39
- pipeErrCh = make (chan error , 1 )
38
+ content io.Reader
40
39
)
41
40
if pf .stdin () {
42
41
content = cmd .InOrStdin ()
43
- // No piping if reading from stdin.
44
- pipeErrCh <- nil
45
- close (pipeErrCh )
46
42
} else {
47
43
prettyDir := prettyDirectoryPath (pf .directory )
48
44
_ , err := cliui .Prompt (cmd , cliui.PromptOptions {
@@ -56,11 +52,8 @@ func (pf *templateUploadFlags) upload(cmd *cobra.Command, client *codersdk.Clien
56
52
57
53
pipeReader , pipeWriter := io .Pipe ()
58
54
go func () {
59
- defer pipeWriter .Close ()
60
- defer close (pipeErrCh )
61
- bufWr := bufio .NewWriter (pipeWriter )
62
- defer bufWr .Flush ()
63
- pipeErrCh <- provisionersdk .Tar (bufWr , pf .directory , provisionersdk .TemplateArchiveLimit )
55
+ err := provisionersdk .Tar (pipeWriter , pf .directory , provisionersdk .TemplateArchiveLimit )
56
+ _ = pipeWriter .CloseWithError (err )
64
57
}()
65
58
defer pipeReader .Close ()
66
59
content = pipeReader
@@ -72,13 +65,10 @@ func (pf *templateUploadFlags) upload(cmd *cobra.Command, client *codersdk.Clien
72
65
spin .Start ()
73
66
defer spin .Stop ()
74
67
75
- resp , err := client .Upload (cmd .Context (), codersdk .ContentTypeTar , content )
68
+ resp , err := client .Upload (cmd .Context (), codersdk .ContentTypeTar , bufio . NewReader ( content ) )
76
69
if err != nil {
77
70
return nil , xerrors .Errorf ("upload: %w" , err )
78
71
}
79
- if err = <- pipeErrCh ; err != nil {
80
- return nil , xerrors .Errorf ("pipe: %w" , err )
81
- }
82
72
return & resp , nil
83
73
}
84
74
0 commit comments