Commit f6c5242a by bergquist

feat(cli): make repo url a parameter

this is a quick hack to support repo url as parameter. Will refactor
later
parent 3d2d8f2d
......@@ -45,11 +45,11 @@ func installCommand(c CommandLine) error {
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 {
plugin, err := s.GetPlugin(pluginName)
func InstallPlugin(pluginName, pluginFolder, version, repoUrl string) error {
plugin, err := s.GetPlugin(pluginName, repoUrl)
if err != nil {
return err
}
......@@ -77,7 +77,7 @@ func InstallPlugin(pluginName, pluginFolder, version string) error {
res, _ := s.ReadPlugin(pluginFolder, pluginName)
for _, v := range res.Dependency.Plugins {
InstallPlugin(v.Id, pluginFolder, "")
InstallPlugin(v.Id, pluginFolder, "", repoUrl)
log.Infof("Installed Dependency: %v ✔\n", v.Id)
}
......
......@@ -6,7 +6,7 @@ import (
)
func listremoteCommand(c CommandLine) error {
plugin, err := s.ListAllPlugins()
plugin, err := s.ListAllPlugins(c.GlobalString("repo"))
if err != nil {
return err
......
......@@ -32,7 +32,7 @@ func upgradeAllCommand(c CommandLine) error {
localPlugins := s.GetLocalPlugins(pluginDir)
remotePlugins, err := s.ListAllPlugins()
remotePlugins, err := s.ListAllPlugins(c.GlobalString("repo"))
if err != nil {
return err
......@@ -54,7 +54,7 @@ func upgradeAllCommand(c CommandLine) error {
log.Infof("Upgrading %v \n", p.Id)
s.RemoveInstalledPlugin(pluginDir, p.Id)
InstallPlugin(p.Id, pluginDir, "")
InstallPlugin(p.Id, pluginDir, "", c.GlobalString("repo"))
}
return nil
......
......@@ -14,7 +14,7 @@ func upgradeCommand(c CommandLine) error {
return err
}
remotePlugins, err2 := s.ListAllPlugins()
remotePlugins, err2 := s.ListAllPlugins(c.GlobalString("repo"))
if err2 != nil {
return err2
......@@ -24,7 +24,7 @@ func upgradeCommand(c CommandLine) error {
if localPlugin.Id == v.Id {
if ShouldUpgrade(localPlugin.Info.Version, v) {
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",
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{
Name: "debug, d",
Usage: "enable debug logging",
......
......@@ -11,8 +11,8 @@ import (
var IoHelper m.IoUtil = IoUtilImp{}
func ListAllPlugins() (m.PluginRepo, error) {
res, _ := goreq.Request{Uri: "https://raw.githubusercontent.com/grafana/grafana-plugin-repository/master/repo.json"}.Do()
func ListAllPlugins(repoUrl string) (m.PluginRepo, error) {
res, _ := goreq.Request{Uri: repoUrl}.Do()
var resp m.PluginRepo
err := res.Body.FromJsonTo(&resp)
......@@ -59,16 +59,16 @@ func RemoveInstalledPlugin(pluginPath, id string) error {
return IoHelper.RemoveAll(path.Join(pluginPath, id))
}
func GetPlugin(id string) (m.Plugin, error) {
resp, err := ListAllPlugins()
func GetPlugin(pluginId, repoUrl string) (m.Plugin, error) {
resp, err := ListAllPlugins(repoUrl)
if err != nil {
}
for _, i := range resp.Plugins {
if i.Id == id {
if i.Id == pluginId {
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 + "\"")
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment