aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/installer/registry/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/mason-core/installer/registry/init.lua')
-rw-r--r--lua/mason-core/installer/registry/init.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/lua/mason-core/installer/registry/init.lua b/lua/mason-core/installer/registry/init.lua
index 27a7da2a..6b03296f 100644
--- a/lua/mason-core/installer/registry/init.lua
+++ b/lua/mason-core/installer/registry/init.lua
@@ -6,6 +6,7 @@ local a = require "mason-core.async"
local link = require "mason-core.installer.registry.link"
local log = require "mason-core.log"
local schemas = require "mason-core.installer.registry.schemas"
+local util = require "mason-core.installer.registry.util"
local M = {}
@@ -132,6 +133,7 @@ function M.parse(spec, opts)
return {
provider = provider,
source = parsed_source,
+ raw_source = source,
purl = purl,
}
end):on_failure(function(err)
@@ -162,13 +164,19 @@ function M.compile(spec, opts)
{ _.T, _.identity },
}
- ---@type { purl: Purl, provider: InstallerProvider, source: ParsedPackageSource }
+ ---@type { purl: Purl, provider: InstallerProvider, source: ParsedPackageSource, raw_source: RegistryPackageSource }
local parsed = try(M.parse(spec, opts):map_err(map_parse_err))
---@async
---@param ctx InstallContext
return function(ctx)
return Result.try(function(try)
+ if ctx.opts.version then
+ try(util.ensure_valid_version(function()
+ return parsed.provider.get_versions(parsed.purl, parsed.raw_source)
+ end))
+ end
+
-- Run installer
try(parsed.provider.install(ctx, parsed.source, parsed.purl))