Added --pluginUrl option to grafana-cli for local network plugin installation
This commit is contained in:
@@ -19,6 +19,7 @@ type CommandLine interface {
|
||||
|
||||
PluginDirectory() string
|
||||
RepoDirectory() string
|
||||
PluginURL() string
|
||||
}
|
||||
|
||||
type contextCommandLine struct {
|
||||
@@ -44,3 +45,7 @@ func (c *contextCommandLine) PluginDirectory() string {
|
||||
func (c *contextCommandLine) RepoDirectory() string {
|
||||
return c.GlobalString("repo")
|
||||
}
|
||||
|
||||
func (c *contextCommandLine) PluginURL() string {
|
||||
return c.GlobalString("pluginUrl")
|
||||
}
|
||||
|
||||
@@ -101,3 +101,7 @@ func (fcli *FakeCommandLine) RepoDirectory() string {
|
||||
func (fcli *FakeCommandLine) PluginDirectory() string {
|
||||
return fcli.GlobalString("pluginsDir")
|
||||
}
|
||||
|
||||
func (fcli *FakeCommandLine) PluginURL() string {
|
||||
return fcli.GlobalString("pluginUrl")
|
||||
}
|
||||
|
||||
@@ -58,37 +58,39 @@ func installCommand(c CommandLine) error {
|
||||
}
|
||||
|
||||
func InstallPlugin(pluginName, version string, c CommandLine) error {
|
||||
plugin, err := s.GetPlugin(pluginName, c.RepoDirectory())
|
||||
pluginFolder := c.PluginDirectory()
|
||||
if err != nil {
|
||||
return err
|
||||
downloadURL := c.PluginURL()
|
||||
if downloadURL == "" {
|
||||
plugin, err := s.GetPlugin(pluginName, c.RepoDirectory())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
v, err := SelectVersion(plugin, version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if version == "" {
|
||||
version = v.Version
|
||||
}
|
||||
downloadURL = fmt.Sprintf("%s/%s/versions/%s/download",
|
||||
c.GlobalString("repo"),
|
||||
pluginName,
|
||||
version)
|
||||
}
|
||||
|
||||
v, err := SelectVersion(plugin, version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if version == "" {
|
||||
version = v.Version
|
||||
}
|
||||
|
||||
downloadURL := fmt.Sprintf("%s/%s/versions/%s/download",
|
||||
c.GlobalString("repo"),
|
||||
pluginName,
|
||||
version)
|
||||
|
||||
logger.Infof("installing %v @ %v\n", plugin.Id, version)
|
||||
logger.Infof("installing %v @ %v\n", pluginName, version)
|
||||
logger.Infof("from url: %v\n", downloadURL)
|
||||
logger.Infof("into: %v\n", pluginFolder)
|
||||
logger.Info("\n")
|
||||
|
||||
err = downloadFile(plugin.Id, pluginFolder, downloadURL)
|
||||
err := downloadFile(pluginName, pluginFolder, downloadURL)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
logger.Infof("%s Installed %s successfully \n", color.GreenString("✔"), plugin.Id)
|
||||
logger.Infof("%s Installed %s successfully \n", color.GreenString("✔"), pluginName)
|
||||
|
||||
res, _ := s.ReadPlugin(pluginFolder, pluginName)
|
||||
for _, v := range res.Dependencies.Plugins {
|
||||
|
||||
Reference in New Issue
Block a user