diff --git a/src/Setup.jl b/src/Setup.jl index 6a21dbc..31d909c 100644 --- a/src/Setup.jl +++ b/src/Setup.jl @@ -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 diff --git a/src/install.jl b/src/install.jl index 2940b44..8fb1912 100644 --- a/src/install.jl +++ b/src/install.jl @@ -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