Try to avoid adding Setup non-globally

This commit is contained in:
TEC 2024-02-12 16:36:23 +08:00
parent e2af89fef1
commit 1f5136ae4c
Signed by: tec
SSH Key Fingerprint: SHA256:eobz41Mnm0/iYWBvWThftS0ElEs1ftBr6jamutnXc/A
2 changed files with 21 additions and 7 deletions

View File

@ -46,13 +46,16 @@ function ensureglobalpkg(pkg::String)
if isnothing(Base.find_package(pkg))
Pkg = lazypkg()
oldproj = Base.current_project()
Pkg.activate()
@info "Installing $pkg"
lazypkg().add(pkg)
if isnothing(oldproj)
try
Pkg.activate()
else
Pkg.activate(oldproj)
@info "Installing $pkg"
Pkg.add(pkg)
finally
if isnothing(oldproj)
Pkg.activate()
else
Pkg.activate(oldproj)
end
end
end
end

View File

@ -13,7 +13,18 @@ else
catch e
if e isa ArgumentError && isnothing(Base.find_package("Setup")) # Package not found in current path
let pkg_id = Base.PkgId(Base.UUID("44cfe95a-1eb2-52ea-b672-e2afdf69b78f"), "Pkg")
Base.require(pkg_id).develop(path=joinpath(@__DIR__, "Setup"))
Pkg = Base.require(pkg_id)
cproj = Base.current_project()
try
Pkg.activate()
Pkg.develop(path=joinpath(@__DIR__, "Setup"))
finally
if isnothing(cproj)
Pkg.activate()
else
Pkg.activate(cproj)
end
end
end
using Setup
else