User plugins should replace default plugins

Fixes #208
This commit is contained in:
Zachary Yedidia
2016-08-14 15:29:02 -04:00
parent 632e4312d5
commit 899b6a4a24

View File

@@ -108,17 +108,27 @@ func LoadPlugins() {
} }
for _, pluginName := range preInstalledPlugins { for _, pluginName := range preInstalledPlugins {
plugin := "runtime/plugins/" + pluginName + "/" + pluginName + ".lua" alreadyExists := false
data, err := Asset(plugin) for _, pl := range loadedPlugins {
if err != nil { if pl == pluginName {
TermMessage("Error loading pre-installed plugin: " + pluginName) alreadyExists = true
continue break
}
} }
pluginDef := "\nlocal P = {}\n" + pluginName + " = P\nsetmetatable(" + pluginName + ", {__index = _G})\nsetfenv(1, P)\n" if !alreadyExists {
if err := L.DoString(pluginDef + string(data)); err != nil { plugin := "runtime/plugins/" + pluginName + "/" + pluginName + ".lua"
TermMessage(err) data, err := Asset(plugin)
continue if err != nil {
TermMessage("Error loading pre-installed plugin: " + pluginName)
continue
}
pluginDef := "\nlocal P = {}\n" + pluginName + " = P\nsetmetatable(" + pluginName + ", {__index = _G})\nsetfenv(1, P)\n"
if err := L.DoString(pluginDef + string(data)); err != nil {
TermMessage(err)
continue
}
loadedPlugins = append(loadedPlugins, pluginName)
} }
loadedPlugins = append(loadedPlugins, pluginName)
} }
} }