Some plugin manager improvements

This commit is contained in:
Zachary Yedidia
2019-03-17 19:01:33 -04:00
parent 4497daaef1
commit a2b9acd153
3 changed files with 44 additions and 31 deletions

View File

@@ -43,9 +43,9 @@ func (i *PluginInfo) FetchRepo() error {
}
p := &Plugin{
info: i,
dir: dir,
repo: r,
Info: i,
Dir: dir,
Repo: r,
}
err = p.ResolveVersion()
@@ -58,7 +58,7 @@ func (i *PluginInfo) FetchRepo() error {
}
func (p *Plugin) ResolveVersion() error {
i := p.info
i := p.Info
vs := i.Versions
for _, v := range vs {
@@ -67,7 +67,7 @@ func (p *Plugin) ResolveVersion() error {
return err
}
if microrange(util.SemVersion) {
p.version = v.Vers
p.Version = v.Vers
fmt.Println("resolve version to ", v.Vstr)
return nil
}
@@ -77,16 +77,7 @@ func (p *Plugin) ResolveVersion() error {
}
func (p *Plugin) WriteVersion() error {
return ioutil.WriteFile(path.Join(p.dir, versionfile), []byte(p.version.String()), 0644)
}
func (p *Plugin) FetchDeps() error {
_, err := ListInstalledPlugins()
if err != nil {
return err
}
return nil
return ioutil.WriteFile(path.Join(p.Dir, versionfile), []byte(p.Version.String()), 0644)
}
func (p *Plugin) PostInstallHooks() error {

View File

@@ -29,15 +29,15 @@ const (
)
type Plugin struct {
info *PluginInfo
dir string
repo *git.Repository
version semver.Version // currently installed version
Info *PluginInfo
Dir string
Repo *git.Repository
Version semver.Version // currently installed version
}
func (p *Plugin) GetRequires() *PluginVersion {
for _, v := range p.info.Versions {
if p.version.Equals(v.Vers) {
for _, v := range p.Info.Versions {
if p.Version.Equals(v.Vers) {
return &v
}
}
@@ -146,7 +146,7 @@ func ListInstalledPlugins() ([]*Plugin, error) {
if err != nil {
return nil, err
}
sv, err := semver.Make(string(versiondat))
sv, err := semver.Make(string(bytes.TrimSpace(versiondat)))
if err != nil {
return nil, err
}
@@ -158,10 +158,10 @@ func ListInstalledPlugins() ([]*Plugin, error) {
}
p := &Plugin{
info: info,
dir: dirname,
repo: r,
version: sv,
Info: info,
Dir: dirname,
Repo: r,
Version: sv,
}
plugins = append(plugins, p)