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 { ...@@ -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 { ...@@ -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 ( ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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() { ...@@ -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 ( ...@@ -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 { ...@@ -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 + "\"")
} }
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