diff options
| author | ruki <[email protected]> | 2026-08-08 22:41:30 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-08-09 18:28:59 +0800 |
| commit | 8564ea66201d1398cb8ee5b91efc784a379c4a64 (patch) | |
| tree | a1f909bc0c06a456d423e299733ab10d86cbeb47 /xmake/core/package/addon.lua | |
| parent | 4fc05750f6da0568df7a0fa836e114128d3ba849 (diff) | |
fix plugin bug and add description
Diffstat (limited to 'xmake/core/package/addon.lua')
| -rw-r--r-- | xmake/core/package/addon.lua | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/xmake/core/package/addon.lua b/xmake/core/package/addon.lua index 35966853d..d433bdf8a 100644 --- a/xmake/core/package/addon.lua +++ b/xmake/core/package/addon.lua @@ -170,11 +170,15 @@ end -- -- @param name the addon name -- @param version the addon version, e.g. "1.0.1", "latest" +-- @param opt the options, e.g. {description = "..."} -- -function addon.register(name, version) +function addon.register(name, version, opt) + opt = opt or {} local dirname = addon.dirname(name) local addons = addon.addons() - addons[dirname] = {version = version, payloads = addon.payloads_of(path.join(addon.installdir(), dirname, version))} + addons[dirname] = {version = version, + description = opt.description, + payloads = addon.payloads_of(path.join(addon.installdir(), dirname, version))} addon._save(addons) end @@ -193,11 +197,20 @@ end -- it's only used to repair the registry file, e.g. the user removed some addon directories manually -- function addon.rescan() + local oldaddons = addon.addons() local addons = {} for _, versiondir in ipairs(os.dirs(path.join(addon.installdir(), "*", "*"))) do local payloads = addon.payloads_of(versiondir) if #payloads > 0 then - addons[path.filename(path.directory(versiondir))] = {version = path.filename(versiondir), payloads = payloads} + local dirname = path.filename(path.directory(versiondir)) + local version = path.filename(versiondir) + -- we need to keep the description, we cannot get it from the installed payloads + local oldaddoninfo = oldaddons[dirname] + local description + if oldaddoninfo and oldaddoninfo.version == version then + description = oldaddoninfo.description + end + addons[dirname] = {version = version, description = description, payloads = payloads} end end addon._save(addons) |
