adds .local/share/millennium and easyeffects
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
|
||||
local json = require("json")
|
||||
local fs = require("fs")
|
||||
local utils = require("utils")
|
||||
local logger = require("logger")
|
||||
local millennium = require("millennium")
|
||||
|
||||
local M = {}
|
||||
|
||||
function M.HandleLegacyExtensions()
|
||||
local plugin_dir = GetPluginDir()
|
||||
if not plugin_dir then
|
||||
logger:error("Failed to get plugin directory")
|
||||
return json.encode({ error = "Failed to get plugin directory" })
|
||||
end
|
||||
|
||||
local extensions_dir = fs.join(plugin_dir, ".extensions")
|
||||
|
||||
if not fs.exists(extensions_dir) or not fs.is_directory(extensions_dir) then
|
||||
return json.encode({})
|
||||
end
|
||||
|
||||
local extensions = {}
|
||||
local entries, err = fs.list(extensions_dir)
|
||||
|
||||
if entries then
|
||||
for _, entry in ipairs(entries) do
|
||||
if entry.is_directory then
|
||||
local metadata_path = fs.join(entry.path, "metadata.json")
|
||||
local extension_data = {
|
||||
name = string.gsub(entry.name, '-', ' '),
|
||||
hasMetadata = false
|
||||
}
|
||||
|
||||
if fs.is_file(metadata_path) then
|
||||
local content, err = utils.read_file(metadata_path)
|
||||
if content then
|
||||
local metadata, decode_err = json.decode(content)
|
||||
if metadata then
|
||||
extension_data.hasMetadata = true
|
||||
extension_data.extensionId = metadata.extensionId
|
||||
extension_data.url = metadata.url
|
||||
else
|
||||
logger:warn("Failed to decode metadata for " .. entry .. ": " .. (decode_err or "unknown error"))
|
||||
end
|
||||
else
|
||||
logger:warn("Failed to read metadata for " .. entry .. ": " .. (err or "unknown error"))
|
||||
end
|
||||
end
|
||||
|
||||
table.insert(extensions, extension_data)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if #extensions == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
logger:info("Found " .. #extensions .. " legacy extensions")
|
||||
|
||||
local extensions_json = json.encode(extensions)
|
||||
millennium.call_frontend_method("showLegacyExtensionDialog", {extensions_json})
|
||||
end
|
||||
|
||||
---Delete the .extensions folder
|
||||
function M.DeleteLegacyExtensions()
|
||||
local plugin_dir = GetPluginDir()
|
||||
if not plugin_dir then
|
||||
logger:error("Failed to get plugin directory")
|
||||
end
|
||||
|
||||
local extensions_dir = fs.join(plugin_dir, ".extensions")
|
||||
|
||||
if not fs.exists(extensions_dir) or not fs.is_directory(extensions_dir) then
|
||||
return
|
||||
end
|
||||
|
||||
local count, err = fs.remove_all(extensions_dir)
|
||||
if count then
|
||||
logger:info("Deleted legacy extensions folder: " .. count .. " items removed")
|
||||
else
|
||||
logger:error("Failed to delete legacy extensions folder: " .. (err or "unknown error"))
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user