"sync"
"github.com/blang/semver"
+ "github.com/flynn/json5"
"github.com/yuin/gopher-lua"
- "github.com/zyedidia/json5/encoding/json5"
)
var (
result = append(result, newStaticPluginVersion(CorePluginName, Version))
}
- for _, name := range loadedPlugins {
- version := GetInstalledPluginVersion(name)
+ for name, lpname := range loadedPlugins {
+ version := GetInstalledPluginVersion(lpname)
if pv := newStaticPluginVersion(name, version); pv != nil {
result = append(result, pv)
}
}
}
+ // Install files and directory's
for _, f := range z.File {
parts := strings.Split(f.Name, "/")
if allPrefixed {
return err
}
} else {
+ basepath := filepath.Dir(targetName)
+
+ if err := os.MkdirAll(basepath, dirPerm); err != nil {
+ return err
+ }
+
content, err := f.Open()
if err != nil {
return err
shouldInstall := true
if pv := currentlyInstalled.find(sel.pack.Name); pv != nil {
if pv.Version.NE(sel.Version) {
- messenger.AddLog(fmt.Sprint("Uninstalling %q", sel.pack.Name))
+ messenger.AddLog("Uninstalling", sel.pack.Name)
UninstallPlugin(sel.pack.Name)
} else {
shouldInstall = false
func UninstallPlugin(name string) {
if err := os.RemoveAll(filepath.Join(configDir, "plugins", name)); err != nil {
messenger.Error(err)
+ return
}
+ delete(loadedPlugins, name)
}
// Install installs the plugin
func UpdatePlugins(plugins []string) {
// if no plugins are specified, update all installed plugins.
if len(plugins) == 0 {
- plugins = loadedPlugins
+ for name := range loadedPlugins {
+ plugins = append(plugins, name)
+ }
}
messenger.AddLog("Checking for plugin updates")