aboutsummaryrefslogtreecommitdiff
path: root/src/lpm.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/lpm.lua')
-rw-r--r--src/lpm.lua34
1 files changed, 26 insertions, 8 deletions
diff --git a/src/lpm.lua b/src/lpm.lua
index e981d0d..2e3772b 100644
--- a/src/lpm.lua
+++ b/src/lpm.lua
@@ -539,6 +539,15 @@ global({
global({ "HOME", "USERDIR", "CACHEDIR", "JSON", "TABLE", "HEADER", "RAW", "VERBOSE", "FILTRATION", "MOD_VERSION", "QUIET", "FORCE", "REINSTALL", "CONFIG", "NO_COLOR", "AUTO_PULL_REMOTES", "ARCH", "ASSUME_YES", "NO_INSTALL_OPTIONAL", "TMPDIR", "DATADIR", "BINARY", "POST", "PROGRESS", "SYMLINK", "REPOSITORY", "EPHEMERAL", "MASK", "settings", "repositories", "lite_xls", "system_bottle", "progress_bar_label", "write_progress_bar" })
global({ Addon = {}, Repository = {}, LiteXL = {}, Bottle = {}, lpm = {}, log = {} })
+-- in the cases where we don't have a manifest, assume generalized structure, take addons folder, trawl through it, build manifest that way
+-- assuming each .lua file under the `addons` folder is a addon. also parse the README, if present, and see if any of the addons
+-- Ignore any requries that are in CORE_PLUGINS.
+local CORE_PLUGINS = {
+ autocomplete = true, autoreload = true, contextmenu = true, detectindent = true, drawwhitespace = true, language_c = true, language_cpp = true, language_css = true, language_dart = true,
+ language_html = true, language_js = true, language_lua = true, language_md = true, language_python = true, language_xml = true, lineguide = true, linewrapping = true, macro = true,
+ projectsearch = true, quote = true, reflow = true, scale = true, tabularize = true, toolbarview = true, treeview = true, trimwhitespace = true, workspace = true
+}
+
local function engage_locks(func, err, warn)
if not system.stat(CACHEDIR) then common.mkdirp(CACHEDIR) end
local lockfile = CACHEDIR .. PATHSEP .. ".lock"
@@ -1139,14 +1148,6 @@ function Repository:parse_manifest(repo_id)
end
--- in the cases where we don't have a manifest, assume generalized structure, take addons folder, trawl through it, build manifest that way
--- assuming each .lua file under the `addons` folder is a addon. also parse the README, if present, and see if any of the addons
--- Ignore any requries that are in CORE_PLUGINS.
-local CORE_PLUGINS = {
- autocomplete = true, autoreload = true, contextmenu = true, detectindent = true, drawwhitespace = true, language_c = true, language_cpp = true, language_css = true, language_dart = true,
- language_html = true, language_js = true, language_lua = true, language_md = true, language_python = true, language_xml = true, lineguide = true, linewrapping = true, macro = true,
- projectsearch = true, quote = true, reflow = true, scale = true, tabularize = true, toolbarview = true, treeview = true, trimwhitespace = true, workspace = true
-}
function Repository:generate_manifest(repo_id)
if not self.local_path and not self.commit and not self.branch then error("requires an instantiation") end
local path = self.local_path
@@ -1592,11 +1593,28 @@ function Bottle:all_addons()
description = (hash[id] and hash[id][1].description or nil),
repo_path = (hash[id] and hash[id][1].local_path or nil)
}))
+ if not hash[id] then hash[id] = t[#t] end
end
end
end
end
end
+ -- If we can't find the datadir, assume that we have the core plugins installed.
+ if not system.stat(self.lite_xl.datadir_path) then
+ for id, v in pairs(CORE_PLUGINS) do
+ if not hash[id] then
+ table.insert(t, Addon.new(nil, {
+ id = id,
+ type = "plugin",
+ location = "core",
+ organization = "singleton",
+ local_path = nil,
+ mod_version = self.lite_xl.mod_version,
+ path = "plugins" .. PATHSEP .. id .. ".lua"
+ }))
+ end
+ end
+ end
self.all_addons_cache = t
return t
end