diff --git a/pkg/cmd/grafana-cli/commands/install_command.go b/pkg/cmd/grafana-cli/commands/install_command.go index db390768263..ad77c39ba87 100644 --- a/pkg/cmd/grafana-cli/commands/install_command.go +++ b/pkg/cmd/grafana-cli/commands/install_command.go @@ -85,7 +85,7 @@ func InstallPlugin(pluginName, version string, c utils.CommandLine) error { } 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.Info("\n") @@ -145,18 +145,27 @@ func downloadFile(pluginName, filePath, url string) (err error) { } }() - resp, err := http.Get(url) // #nosec - if err != nil { - return err - } - defer resp.Body.Close() + var bytes []byte - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return err + if _, err := os.Stat(url); err == nil { + bytes, err = ioutil.ReadFile(url) + 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 {