@@ -11,13 +11,14 @@ import (
11
11
"time"
12
12
13
13
"github.com/briandowns/spinner"
14
- "github.com/coder/coder/coderd"
15
- "github.com/coder/coder/codersdk"
16
- "github.com/coder/coder/database"
17
14
"github.com/fatih/color"
18
15
"github.com/manifoldco/promptui"
19
16
"github.com/spf13/cobra"
20
17
"golang.org/x/xerrors"
18
+
19
+ "github.com/coder/coder/coderd"
20
+ "github.com/coder/coder/codersdk"
21
+ "github.com/coder/coder/database"
21
22
)
22
23
23
24
func projectCreate ()* cobra.Command {
@@ -48,9 +49,8 @@ func projectCreate() *cobra.Command {
48
49
return err
49
50
}
50
51
51
- name := filepath .Base (workingDir )
52
- name ,err = runPrompt (cmd ,& promptui.Prompt {
53
- Default :name ,
52
+ name ,err := runPrompt (cmd ,& promptui.Prompt {
53
+ Default :filepath .Base (workingDir ),
54
54
Label :"What's your project's name?" ,
55
55
Validate :func (s string )error {
56
56
_ ,err = client .Project (cmd .Context (),organization .Name ,s )
@@ -69,7 +69,7 @@ func projectCreate() *cobra.Command {
69
69
spin .Start ()
70
70
defer spin .Stop ()
71
71
72
- bytes ,err := tarDir (workingDir )
72
+ bytes ,err := tarDirectory (workingDir )
73
73
if err != nil {
74
74
return err
75
75
}
@@ -91,8 +91,6 @@ func projectCreate() *cobra.Command {
91
91
}
92
92
spin .Stop ()
93
93
94
- time .Sleep (time .Second )
95
-
96
94
logs ,err := client .FollowProvisionerJobLogsAfter (context .Background (),organization .Name ,job .ID , time.Time {})
97
95
if err != nil {
98
96
return err
@@ -102,54 +100,50 @@ func projectCreate() *cobra.Command {
102
100
if ! ok {
103
101
break
104
102
}
105
- fmt .Fprintf (cmd .OutOrStdout (),"%s %s\n " ,color .HiGreenString ("[parse]" ),log .Output )
103
+ _ , _ = fmt .Fprintf (cmd .OutOrStdout (),"%s %s\n " ,color .HiGreenString ("[parse]" ),log .Output )
106
104
}
107
105
108
- fmt .Printf ( "Projects %+v %+v \n " ,projects , organization )
106
+ _ , _ = fmt .Fprintf ( cmd . OutOrStdout (), "Create project %q! \n " ,name )
109
107
return nil
110
108
},
111
109
}
112
110
}
113
111
114
- func tarDir (directory string ) ([]byte ,error ) {
112
+ func tarDirectory (directory string ) ([]byte ,error ) {
115
113
var buffer bytes.Buffer
116
- tw := tar .NewWriter (& buffer )
117
- // walk through every file in the folder
118
- err := filepath .Walk (directory ,func (file string ,fi os.FileInfo ,err error )error {
119
- // generate tar header
120
- header ,err := tar .FileInfoHeader (fi ,file )
114
+ tarWriter := tar .NewWriter (& buffer )
115
+ err := filepath .Walk (directory ,func (file string ,fileInfo os.FileInfo ,err error )error {
116
+ if err != nil {
117
+ return err
118
+ }
119
+ header ,err := tar .FileInfoHeader (fileInfo ,file )
121
120
if err != nil {
122
121
return err
123
122
}
124
-
125
- // must provide real name
126
- // (see https://golang.org/src/archive/tar/common.go?#L626)
127
123
rel ,err := filepath .Rel (directory ,file )
128
124
if err != nil {
129
125
return err
130
126
}
131
127
header .Name = rel
132
-
133
- // write header
134
- if err := tw .WriteHeader (header );err != nil {
128
+ if err := tarWriter .WriteHeader (header );err != nil {
135
129
return err
136
130
}
137
- // ifnot a dir, write file content
138
- if ! fi . IsDir () {
139
- data , err := os . Open ( file )
140
- if err != nil {
141
- return err
142
- }
143
- if _ , err := io . Copy ( tw , data ); err != nil {
144
- return err
145
- }
131
+ if fileInfo . IsDir () {
132
+ return nil
133
+ }
134
+ data , err := os . Open ( file )
135
+ if err != nil {
136
+ return err
137
+ }
138
+ if _ , err := io . Copy ( tarWriter , data ); err != nil {
139
+ return err
146
140
}
147
- return nil
141
+ return data . Close ()
148
142
})
149
143
if err != nil {
150
144
return nil ,err
151
145
}
152
- err = tw .Flush ()
146
+ err = tarWriter .Flush ()
153
147
if err != nil {
154
148
return nil ,err
155
149
}