grafana-cli: allow installing plugins from a local zip file (#18021)
This commit is contained in:
@@ -85,7 +85,7 @@ func InstallPlugin(pluginName, version string, c utils.CommandLine) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
logger.Infof("installing %v @ %v\n", pluginName, version)
|
logger.Infof("installing %v @ %v\n", pluginName, version)
|
||||||
logger.Infof("from url: %v\n", downloadURL)
|
logger.Infof("from: %v\n", downloadURL)
|
||||||
logger.Infof("into: %v\n", pluginFolder)
|
logger.Infof("into: %v\n", pluginFolder)
|
||||||
logger.Info("\n")
|
logger.Info("\n")
|
||||||
|
|
||||||
@@ -145,18 +145,27 @@ func downloadFile(pluginName, filePath, url string) (err error) {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
resp, err := http.Get(url) // #nosec
|
var bytes []byte
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer resp.Body.Close()
|
|
||||||
|
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
if _, err := os.Stat(url); err == nil {
|
||||||
if err != nil {
|
bytes, err = ioutil.ReadFile(url)
|
||||||
return err
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
resp, err := http.Get(url) // #nosec
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
|
bytes, err = ioutil.ReadAll(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return extractFiles(body, pluginName, filePath)
|
return extractFiles(bytes, pluginName, filePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
func extractFiles(body []byte, pluginName string, filePath string) error {
|
func extractFiles(body []byte, pluginName string, filePath string) error {
|
||||||
|
|||||||
Reference in New Issue
Block a user