@@ -18,7 +18,6 @@ import (
18
18
"golang.org/x/xerrors"
19
19
"google.golang.org/grpc"
20
20
21
- "github.com/gitpod-io/gitpod/gitpod-cli/pkg/theialib"
22
21
serverapi "github.com/gitpod-io/gitpod/gitpod-protocol"
23
22
supervisor "github.com/gitpod-io/gitpod/supervisor/api"
24
23
)
@@ -124,148 +123,78 @@ func connectToServer(ctx context.Context) (*connectToServerResult, error) {
124
123
}
125
124
126
125
func getEnvs () {
127
- if ! isTheiaIDE () {
128
- ctx , cancel := context .WithTimeout (context .Background (), 1 * time .Minute )
129
- defer cancel ()
130
- result , err := connectToServer (ctx )
131
- if err != nil {
132
- fail (err .Error ())
133
- }
134
-
135
- vars , err := result .client .GetEnvVars (ctx )
136
- if err != nil {
137
- fail ("failed to fetch env vars from server: " + err .Error ())
138
- }
139
-
140
- for _ , v := range vars {
141
- printVar (v , exportEnvs )
142
- }
143
- return
144
- }
145
-
146
- service , err := theialib .NewServiceFromEnv ()
126
+ ctx , cancel := context .WithTimeout (context .Background (), 1 * time .Minute )
127
+ defer cancel ()
128
+ result , err := connectToServer (ctx )
147
129
if err != nil {
148
130
fail (err .Error ())
149
131
}
150
132
151
- vars , err := service . GetEnvVars (theialib. GetEnvvarsRequest {} )
133
+ vars , err := result . client . GetEnvVars (ctx )
152
134
if err != nil {
153
- fail (fmt . Sprintf ( "cannot get environment variables: %v" , err ))
135
+ fail ("failed to fetch env vars from server: " + err . Error ( ))
154
136
}
155
137
156
- for _ , v := range vars . Variables {
157
- printVarFromTheia (v , exportEnvs )
138
+ for _ , v := range vars {
139
+ printVar (v , exportEnvs )
158
140
}
159
141
}
160
142
161
143
func setEnvs (args []string ) {
162
- if ! isTheiaIDE () {
163
- ctx , cancel := context .WithTimeout (context .Background (), 1 * time .Minute )
164
- defer cancel ()
165
- result , err := connectToServer (ctx )
166
- if err != nil {
167
- fail (err .Error ())
168
- }
169
-
170
- vars , err := parseArgs (args , result .repositoryPattern )
171
- if err != nil {
172
- fail (err .Error ())
173
- }
174
-
175
- var exitCode int
176
- var wg sync.WaitGroup
177
- wg .Add (len (vars ))
178
- for _ , v := range vars {
179
- go func (v * serverapi.UserEnvVarValue ) {
180
- err = result .client .SetEnvVar (ctx , v )
181
- if err != nil {
182
- fmt .Fprintf (os .Stderr , "cannot set %s: %v\n " , v .Name , err )
183
- exitCode = - 1
184
- } else {
185
- printVar (v , exportEnvs )
186
- }
187
- wg .Done ()
188
- }(v )
189
- }
190
- wg .Wait ()
191
- os .Exit (exitCode )
192
- }
193
-
194
- service , err := theialib .NewServiceFromEnv ()
144
+ ctx , cancel := context .WithTimeout (context .Background (), 1 * time .Minute )
145
+ defer cancel ()
146
+ result , err := connectToServer (ctx )
195
147
if err != nil {
196
148
fail (err .Error ())
197
149
}
198
150
199
- vars := make ([]theialib.EnvironmentVariable , len (args ))
200
- for i , arg := range args {
201
- kv := strings .Split (arg , "=" )
202
- if len (kv ) != 2 {
203
- fail (fmt .Sprintf ("%s has no value (correct format is %s=some_value)" , arg , arg ))
204
- }
205
-
206
- key := strings .TrimSpace (kv [0 ])
207
- if key == "" {
208
- fail ("variable must have a name" )
209
- }
210
- // Do not trim value - the user might want whitespace here
211
- // Also do not check if the value is empty, as an empty value means we want to delete the variable
212
- val := kv [1 ]
213
- if val == "" {
214
- fail ("variable must have a value; use -u to unset a variable" )
215
- }
216
-
217
- vars [i ] = theialib.EnvironmentVariable {Name : key , Value : val }
218
- }
219
-
220
- _ , err = service .SetEnvVar (theialib.SetEnvvarRequest {Variables : vars })
151
+ vars , err := parseArgs (args , result .repositoryPattern )
221
152
if err != nil {
222
- fail (fmt . Sprintf ( "cannot set environment variables: %v" , err ))
153
+ fail (err . Error ( ))
223
154
}
224
155
156
+ var exitCode int
157
+ var wg sync.WaitGroup
158
+ wg .Add (len (vars ))
225
159
for _ , v := range vars {
226
- printVarFromTheia (v , exportEnvs )
160
+ go func (v * serverapi.UserEnvVarValue ) {
161
+ err = result .client .SetEnvVar (ctx , v )
162
+ if err != nil {
163
+ fmt .Fprintf (os .Stderr , "cannot set %s: %v\n " , v .Name , err )
164
+ exitCode = - 1
165
+ } else {
166
+ printVar (v , exportEnvs )
167
+ }
168
+ wg .Done ()
169
+ }(v )
227
170
}
171
+ wg .Wait ()
172
+ os .Exit (exitCode )
228
173
}
229
174
230
175
func deleteEnvs (args []string ) {
231
- if ! isTheiaIDE () {
232
- ctx , cancel := context .WithTimeout (context .Background (), 1 * time .Minute )
233
- defer cancel ()
234
- result , err := connectToServer (ctx )
235
- if err != nil {
236
- fail (err .Error ())
237
- }
238
-
239
- var exitCode int
240
- var wg sync.WaitGroup
241
- wg .Add (len (args ))
242
- for _ , name := range args {
243
- go func (name string ) {
244
- err = result .client .DeleteEnvVar (ctx , & serverapi.UserEnvVarValue {Name : name , RepositoryPattern : result .repositoryPattern })
245
- if err != nil {
246
- fmt .Fprintf (os .Stderr , "cannot unset %s: %v\n " , name , err )
247
- exitCode = - 1
248
- }
249
- wg .Done ()
250
- }(name )
251
- }
252
- wg .Wait ()
253
- os .Exit (exitCode )
254
- }
255
-
256
- service , err := theialib .NewServiceFromEnv ()
176
+ ctx , cancel := context .WithTimeout (context .Background (), 1 * time .Minute )
177
+ defer cancel ()
178
+ result , err := connectToServer (ctx )
257
179
if err != nil {
258
180
fail (err .Error ())
259
181
}
260
182
261
- resp , err := service .DeleteEnvVar (theialib.DeleteEnvvarRequest {Variables : args })
262
- if err != nil {
263
- fail (fmt .Sprintf ("cannot unset environment variables: %v" , err ))
264
- }
265
-
266
- if len (resp .NotDeleted ) != 0 {
267
- fail (fmt .Sprintf ("cannot unset environment variables: %s" , strings .Join (resp .NotDeleted , ", " )))
183
+ var exitCode int
184
+ var wg sync.WaitGroup
185
+ wg .Add (len (args ))
186
+ for _ , name := range args {
187
+ go func (name string ) {
188
+ err = result .client .DeleteEnvVar (ctx , & serverapi.UserEnvVarValue {Name : name , RepositoryPattern : result .repositoryPattern })
189
+ if err != nil {
190
+ fmt .Fprintf (os .Stderr , "cannot unset %s: %v\n " , name , err )
191
+ exitCode = - 1
192
+ }
193
+ wg .Done ()
194
+ }(name )
268
195
}
196
+ wg .Wait ()
197
+ os .Exit (exitCode )
269
198
}
270
199
271
200
func fail (msg string ) {
@@ -282,15 +211,6 @@ func printVar(v *serverapi.UserEnvVarValue, export bool) {
282
211
}
283
212
}
284
213
285
- func printVarFromTheia (v theialib.EnvironmentVariable , export bool ) {
286
- val := strings .Replace (v .Value , "\" " , "\\ \" " , - 1 )
287
- if export {
288
- fmt .Printf ("export %s=\" %s\" \n " , v .Name , val )
289
- } else {
290
- fmt .Printf ("%s=%s\n " , v .Name , val )
291
- }
292
- }
293
-
294
214
func parseArgs (args []string , pattern string ) ([]* serverapi.UserEnvVarValue , error ) {
295
215
vars := make ([]* serverapi.UserEnvVarValue , len (args ))
296
216
for i , arg := range args {
0 commit comments