@@ -77,36 +77,36 @@ func (cmd *InstallPluginCommand) Setup(config command.Config, ui command.UI) err
77
77
func (cmd InstallPluginCommand ) Execute ([]string ) error {
78
78
err := os .MkdirAll (cmd .Config .PluginHome (), 0700 )
79
79
if err != nil {
80
- return shared . HandleError ( err )
80
+ return err
81
81
}
82
82
83
83
tempPluginDir , err := ioutil .TempDir (cmd .Config .PluginHome (), "temp" )
84
84
defer os .RemoveAll (tempPluginDir )
85
85
86
86
if err != nil {
87
- return shared . HandleError ( err )
87
+ return err
88
88
}
89
89
90
90
tempPluginPath , pluginSource , err := cmd .getPluginBinaryAndSource (tempPluginDir )
91
91
if err != nil {
92
- return shared . HandleError ( err )
92
+ return err
93
93
}
94
94
95
95
// copy twice when downloading from a URL to keep Windows specific code
96
96
// isolated to CreateExecutableCopy
97
97
executablePath , err := cmd .Actor .CreateExecutableCopy (tempPluginPath , tempPluginDir )
98
98
if err != nil {
99
- return shared . HandleError ( err )
99
+ return err
100
100
}
101
101
102
102
rpcService , err := shared .NewRPCService (cmd .Config , cmd .UI )
103
103
if err != nil {
104
- return shared . HandleError ( err )
104
+ return err
105
105
}
106
106
107
107
plugin , err := cmd .Actor .GetAndValidatePlugin (rpcService , Commands , executablePath )
108
108
if err != nil {
109
- return shared . HandleError ( err )
109
+ return err
110
110
}
111
111
112
112
if cmd .Actor .IsPluginInstalled (plugin .Name ) {
@@ -120,7 +120,7 @@ func (cmd InstallPluginCommand) Execute([]string) error {
120
120
121
121
err = cmd .uninstallPlugin (plugin , rpcService )
122
122
if err != nil {
123
- return shared . HandleError ( err )
123
+ return err
124
124
}
125
125
}
126
126
@@ -256,23 +256,21 @@ func (InstallPluginCommand) handleFetchingPluginInfoFromRepositoriesError(fetchE
256
256
}
257
257
258
258
func (cmd InstallPluginCommand ) getPluginFromLocalFile (pluginLocation string ) (string , PluginSource , error ) {
259
- err := cmd .installPluginPrompt (installConfirmationPrompt , map [string ]interface {}{
259
+ exitInstall , err := cmd .installPluginPrompt (installConfirmationPrompt , map [string ]interface {}{
260
260
"Path" : pluginLocation ,
261
261
})
262
- if err != nil {
262
+ if err != nil || exitInstall {
263
263
return "" , 0 , err
264
264
}
265
265
266
266
return pluginLocation , PluginFromLocalFile , err
267
267
}
268
268
269
269
func (cmd InstallPluginCommand ) getPluginFromURL (pluginLocation string , tempPluginDir string ) (string , PluginSource , error ) {
270
- var err error
271
-
272
- err = cmd .installPluginPrompt (installConfirmationPrompt , map [string ]interface {}{
270
+ exitInstall , err := cmd .installPluginPrompt (installConfirmationPrompt , map [string ]interface {}{
273
271
"Path" : pluginLocation ,
274
272
})
275
- if err != nil {
273
+ if err != nil || exitInstall {
276
274
return "" , 0 , err
277
275
}
278
276
@@ -311,23 +309,24 @@ func (cmd InstallPluginCommand) getPluginFromRepositories(pluginName string, rep
311
309
})
312
310
313
311
installedPlugin , exist := cmd .Config .GetPlugin (pluginName )
312
+ var exitInstall bool
314
313
if exist {
315
314
cmd .UI .DisplayText ("Plugin {{.PluginName}} {{.PluginVersion}} is already installed." , map [string ]interface {}{
316
315
"PluginName" : installedPlugin .Name ,
317
316
"PluginVersion" : installedPlugin .Version .String (),
318
317
})
319
318
320
- err = cmd .installPluginPrompt ("Do you want to uninstall the existing plugin and install {{.Path}} {{.PluginVersion}}?" , map [string ]interface {}{
319
+ exitInstall , err = cmd .installPluginPrompt ("Do you want to uninstall the existing plugin and install {{.Path}} {{.PluginVersion}}?" , map [string ]interface {}{
321
320
"Path" : pluginName ,
322
321
"PluginVersion" : pluginInfo .Version ,
323
322
})
324
323
} else {
325
- err = cmd .installPluginPrompt (installConfirmationPrompt , map [string ]interface {}{
324
+ exitInstall , err = cmd .installPluginPrompt (installConfirmationPrompt , map [string ]interface {}{
326
325
"Path" : pluginName ,
327
326
})
328
327
}
329
328
330
- if err != nil {
329
+ if err != nil || exitInstall {
331
330
return "" , 0 , err
332
331
}
333
332
@@ -347,12 +346,12 @@ func (cmd InstallPluginCommand) getPluginFromRepositories(pluginName string, rep
347
346
return tempPath , PluginFromRepository , err
348
347
}
349
348
350
- func (cmd InstallPluginCommand ) installPluginPrompt (template string , templateValues ... map [string ]interface {}) error {
349
+ func (cmd InstallPluginCommand ) installPluginPrompt (template string , templateValues ... map [string ]interface {}) ( bool , error ) {
351
350
cmd .UI .DisplayHeader ("Attention: Plugins are binaries written by potentially untrusted authors." )
352
351
cmd .UI .DisplayHeader ("Install and use plugins at your own risk." )
353
352
354
353
if cmd .Force {
355
- return nil
354
+ return false , nil
356
355
}
357
356
358
357
var (
@@ -363,13 +362,13 @@ func (cmd InstallPluginCommand) installPluginPrompt(template string, templateVal
363
362
really , promptErr = cmd .UI .DisplayBoolPrompt (false , template , templateValues ... )
364
363
365
364
if promptErr != nil {
366
- return promptErr
365
+ return false , promptErr
367
366
}
368
367
369
368
if ! really {
370
369
cmd .UI .DisplayText ("Plugin installation cancelled." )
371
- return shared. PluginInstallationCancelled {}
370
+ return true , nil
372
371
}
373
372
374
- return nil
373
+ return false , nil
375
374
}
0 commit comments