aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/mason-core/installer/location.lua5
-rw-r--r--lua/mason-core/package.lua2
-rw-r--r--tests/mason-core/installer/runner_spec.lua24
3 files changed, 18 insertions, 13 deletions
diff --git a/lua/mason-core/installer/location.lua b/lua/mason-core/installer/location.lua
index 2cc038e4..694ae0f4 100644
--- a/lua/mason-core/installer/location.lua
+++ b/lua/mason-core/installer/location.lua
@@ -1,6 +1,7 @@
local Path = require "mason-core.path"
local Result = require "mason-core.result"
local fs = require "mason-core.fs"
+local settings = require "mason.settings"
---@class InstallLocation
---@field private dir string
@@ -14,6 +15,10 @@ function InstallLocation.new(dir)
}, InstallLocation)
end
+function InstallLocation.global()
+ return InstallLocation.new(settings.current.install_root_dir)
+end
+
function InstallLocation:get_dir()
return self.dir
end
diff --git a/lua/mason-core/package.lua b/lua/mason-core/package.lua
index b0da8a61..1c9eee96 100644
--- a/lua/mason-core/package.lua
+++ b/lua/mason-core/package.lua
@@ -159,7 +159,7 @@ function Package:install(opts, callback)
opts = opts or {}
assert(not self:is_installing(), "Package is already installing.")
local handle = self:new_handle()
- local runner = InstallRunner.new(InstallLocation.new(settings.current.install_root_dir), handle, semaphore)
+ local runner = InstallRunner.new(InstallLocation.global(), handle, semaphore)
runner:execute(opts, callback)
return handle
end
diff --git a/tests/mason-core/installer/runner_spec.lua b/tests/mason-core/installer/runner_spec.lua
index b39a75ac..3eed9dff 100644
--- a/tests/mason-core/installer/runner_spec.lua
+++ b/tests/mason-core/installer/runner_spec.lua
@@ -32,7 +32,7 @@ describe("install runner ::", function()
describe("locking ::", function()
it("should respect semaphore locks", function()
local semaphore = Semaphore.new(1)
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local dummy_handle = InstallHandle.new(dummy)
local runner_1 = InstallRunner.new(location, dummy_handle, semaphore)
local runner_2 = InstallRunner.new(location, InstallHandle.new(dummy2), semaphore)
@@ -59,7 +59,7 @@ describe("install runner ::", function()
it("should write lockfile", function()
local semaphore = Semaphore.new(1)
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local dummy_handle = InstallHandle.new(dummy)
local runner = InstallRunner.new(location, dummy_handle, semaphore)
@@ -74,7 +74,7 @@ describe("install runner ::", function()
it("should abort installation if installation lock exists", function()
local semaphore = Semaphore.new(1)
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local dummy_handle = InstallHandle.new(dummy)
local runner = InstallRunner.new(location, dummy_handle, semaphore)
@@ -97,7 +97,7 @@ describe("install runner ::", function()
it("should not abort installation if installation lock exists with force=true", function()
local semaphore = Semaphore.new(1)
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local dummy_handle = InstallHandle.new(dummy)
local runner = InstallRunner.new(location, dummy_handle, semaphore)
@@ -117,7 +117,7 @@ describe("install runner ::", function()
it("should release lock after successful installation", function()
local semaphore = Semaphore.new(1)
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local dummy_handle = InstallHandle.new(dummy)
local runner = InstallRunner.new(location, dummy_handle, semaphore)
@@ -135,7 +135,7 @@ describe("install runner ::", function()
end)
it("should initialize install location", function()
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local runner = InstallRunner.new(location, InstallHandle.new(registry.get_package "dummy"), Semaphore.new(1))
spy.on(location, "initialize")
@@ -149,7 +149,7 @@ describe("install runner ::", function()
describe("receipt ::", function()
it("should write receipt", function()
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local runner =
InstallRunner.new(location, InstallHandle.new(registry.get_package "dummy"), Semaphore.new(1))
@@ -185,7 +185,7 @@ describe("install runner ::", function()
registry:once("package:install:failed", registry_spy)
dummy:once("install:failed", package_spy)
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local handle = InstallHandle.new(registry.get_package "dummy")
local runner = InstallRunner.new(location, handle, Semaphore.new(1))
@@ -208,7 +208,7 @@ describe("install runner ::", function()
end)
it("should terminate installation", function()
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local handle = InstallHandle.new(registry.get_package "dummy")
local runner = InstallRunner.new(location, handle, Semaphore.new(1))
@@ -233,7 +233,7 @@ describe("install runner ::", function()
end)
it("should write debug logs when debug=true", function()
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local handle = InstallHandle.new(registry.get_package "dummy")
local runner = InstallRunner.new(location, handle, Semaphore.new(1))
@@ -254,7 +254,7 @@ describe("install runner ::", function()
end)
it("should not retain installation directory on failure", function()
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local handle = InstallHandle.new(registry.get_package "dummy")
local runner = InstallRunner.new(location, handle, Semaphore.new(1))
@@ -275,7 +275,7 @@ describe("install runner ::", function()
end)
it("should retain installation directory on failure and debug=true", function()
- local location = InstallLocation.new(settings.current.install_root_dir)
+ local location = InstallLocation.global()
local handle = InstallHandle.new(registry.get_package "dummy")
local runner = InstallRunner.new(location, handle, Semaphore.new(1))