mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
feat(cli): make repo url a parameter
this is a quick hack to support repo url as parameter. Will refactor later
This commit is contained in:
@@ -45,11 +45,11 @@ func installCommand(c CommandLine) error {
|
|||||||
|
|
||||||
log.Infof("version: %v\n", version)
|
log.Infof("version: %v\n", version)
|
||||||
|
|
||||||
return InstallPlugin(pluginToInstall, pluginFolder, version)
|
return InstallPlugin(pluginToInstall, pluginFolder, version, c.GlobalString("repo"))
|
||||||
}
|
}
|
||||||
|
|
||||||
func InstallPlugin(pluginName, pluginFolder, version string) error {
|
func InstallPlugin(pluginName, pluginFolder, version, repoUrl string) error {
|
||||||
plugin, err := s.GetPlugin(pluginName)
|
plugin, err := s.GetPlugin(pluginName, repoUrl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -77,7 +77,7 @@ func InstallPlugin(pluginName, pluginFolder, version string) error {
|
|||||||
res, _ := s.ReadPlugin(pluginFolder, pluginName)
|
res, _ := s.ReadPlugin(pluginFolder, pluginName)
|
||||||
|
|
||||||
for _, v := range res.Dependency.Plugins {
|
for _, v := range res.Dependency.Plugins {
|
||||||
InstallPlugin(v.Id, pluginFolder, "")
|
InstallPlugin(v.Id, pluginFolder, "", repoUrl)
|
||||||
log.Infof("Installed Dependency: %v ✔\n", v.Id)
|
log.Infof("Installed Dependency: %v ✔\n", v.Id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func listremoteCommand(c CommandLine) error {
|
func listremoteCommand(c CommandLine) error {
|
||||||
plugin, err := s.ListAllPlugins()
|
plugin, err := s.ListAllPlugins(c.GlobalString("repo"))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ func upgradeAllCommand(c CommandLine) error {
|
|||||||
|
|
||||||
localPlugins := s.GetLocalPlugins(pluginDir)
|
localPlugins := s.GetLocalPlugins(pluginDir)
|
||||||
|
|
||||||
remotePlugins, err := s.ListAllPlugins()
|
remotePlugins, err := s.ListAllPlugins(c.GlobalString("repo"))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -54,7 +54,7 @@ func upgradeAllCommand(c CommandLine) error {
|
|||||||
log.Infof("Upgrading %v \n", p.Id)
|
log.Infof("Upgrading %v \n", p.Id)
|
||||||
|
|
||||||
s.RemoveInstalledPlugin(pluginDir, p.Id)
|
s.RemoveInstalledPlugin(pluginDir, p.Id)
|
||||||
InstallPlugin(p.Id, pluginDir, "")
|
InstallPlugin(p.Id, pluginDir, "", c.GlobalString("repo"))
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ func upgradeCommand(c CommandLine) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
remotePlugins, err2 := s.ListAllPlugins()
|
remotePlugins, err2 := s.ListAllPlugins(c.GlobalString("repo"))
|
||||||
|
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
return err2
|
return err2
|
||||||
@@ -24,7 +24,7 @@ func upgradeCommand(c CommandLine) error {
|
|||||||
if localPlugin.Id == v.Id {
|
if localPlugin.Id == v.Id {
|
||||||
if ShouldUpgrade(localPlugin.Info.Version, v) {
|
if ShouldUpgrade(localPlugin.Info.Version, v) {
|
||||||
s.RemoveInstalledPlugin(pluginDir, pluginName)
|
s.RemoveInstalledPlugin(pluginDir, pluginName)
|
||||||
return InstallPlugin(localPlugin.Id, pluginDir, "")
|
return InstallPlugin(localPlugin.Id, pluginDir, "", c.GlobalString("repo"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,11 @@ func main() {
|
|||||||
Usage: "path to the grafana installation",
|
Usage: "path to the grafana installation",
|
||||||
Value: getGrafanaPluginPath(),
|
Value: getGrafanaPluginPath(),
|
||||||
},
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "repo",
|
||||||
|
Usage: "url to the plugin repository",
|
||||||
|
Value: "https://raw.githubusercontent.com/grafana/grafana-plugin-repository/master/repo.json",
|
||||||
|
},
|
||||||
cli.BoolFlag{
|
cli.BoolFlag{
|
||||||
Name: "debug, d",
|
Name: "debug, d",
|
||||||
Usage: "enable debug logging",
|
Usage: "enable debug logging",
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import (
|
|||||||
|
|
||||||
var IoHelper m.IoUtil = IoUtilImp{}
|
var IoHelper m.IoUtil = IoUtilImp{}
|
||||||
|
|
||||||
func ListAllPlugins() (m.PluginRepo, error) {
|
func ListAllPlugins(repoUrl string) (m.PluginRepo, error) {
|
||||||
res, _ := goreq.Request{Uri: "https://raw.githubusercontent.com/grafana/grafana-plugin-repository/master/repo.json"}.Do()
|
res, _ := goreq.Request{Uri: repoUrl}.Do()
|
||||||
|
|
||||||
var resp m.PluginRepo
|
var resp m.PluginRepo
|
||||||
err := res.Body.FromJsonTo(&resp)
|
err := res.Body.FromJsonTo(&resp)
|
||||||
@@ -59,16 +59,16 @@ func RemoveInstalledPlugin(pluginPath, id string) error {
|
|||||||
return IoHelper.RemoveAll(path.Join(pluginPath, id))
|
return IoHelper.RemoveAll(path.Join(pluginPath, id))
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPlugin(id string) (m.Plugin, error) {
|
func GetPlugin(pluginId, repoUrl string) (m.Plugin, error) {
|
||||||
resp, err := ListAllPlugins()
|
resp, err := ListAllPlugins(repoUrl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, i := range resp.Plugins {
|
for _, i := range resp.Plugins {
|
||||||
if i.Id == id {
|
if i.Id == pluginId {
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return m.Plugin{}, errors.New("could not find plugin named \"" + id + "\"")
|
return m.Plugin{}, errors.New("could not find plugin named \"" + pluginId + "\"")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user