Skip to content

Commit 2cb26fb

Browse files
00vareladavidKristofferC
authored andcommitted
[RFC] Make command spec more declarative (#509)
* Refactor `REPLMode.parse_quotes`
1 parent 82f45f6 commit 2cb26fb

File tree

3 files changed

+1217
-718
lines changed

3 files changed

+1217
-718
lines changed

stdlib/Pkg/src/API.jl

+15-2
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,11 @@ add_or_develop(pkg::Union{String, PackageSpec}; kwargs...) = add_or_develop([pkg
2828
add_or_develop(pkgs::Vector{String}; kwargs...) = add_or_develop([check_package_name(pkg) for pkg in pkgs]; kwargs...)
2929
add_or_develop(pkgs::Vector{PackageSpec}; kwargs...) = add_or_develop(Context(), pkgs; kwargs...)
3030

31-
function add_or_develop(ctx::Context, pkgs::Vector{PackageSpec}; mode::Symbol, devdir::Union{String,Nothing}=nothing, kwargs...)
31+
function add_or_develop(ctx::Context, pkgs::Vector{PackageSpec}; mode::Symbol, devdir::Bool=false, kwargs...)
3232
Context!(ctx; kwargs...)
3333

34+
devdir = devdir ? joinpath(dirname(ctx.env.project_file), "dev") : nothing
35+
3436
# All developed packages should go through handle_repos_develop so just give them an empty repo
3537
for pkg in pkgs
3638
mode == :develop && pkg.repo == nothing && (pkg.repo = Types.GitRepo())
@@ -67,7 +69,12 @@ rm(pkg::Union{String, PackageSpec}; kwargs...) = rm([pkg]; kwargs...)
6769
rm(pkgs::Vector{String}; kwargs...) = rm([PackageSpec(pkg) for pkg in pkgs]; kwargs...)
6870
rm(pkgs::Vector{PackageSpec}; kwargs...) = rm(Context(), pkgs; kwargs...)
6971

70-
function rm(ctx::Context, pkgs::Vector{PackageSpec}; kwargs...)
72+
function rm(ctx::Context, pkgs::Vector{PackageSpec}; mode=PKGMODE_PROJECT, kwargs...)
73+
for pkg in pkgs
74+
#TODO only overwrite pkg.mode is default value ?
75+
pkg.mode = mode
76+
end
77+
7178
Context!(ctx; kwargs...)
7279
ctx.preview && preview_info()
7380
project_deps_resolve!(ctx.env, pkgs)
@@ -144,6 +151,12 @@ up(pkgs::Vector{PackageSpec}; kwargs...) = up(Context(), pkgs; kwargs...)
144151

145152
function up(ctx::Context, pkgs::Vector{PackageSpec};
146153
level::UpgradeLevel=UPLEVEL_MAJOR, mode::PackageMode=PKGMODE_PROJECT, do_update_registry=true, kwargs...)
154+
for pkg in pkgs
155+
# TODO only override if they are not already set
156+
pkg.mode = mode
157+
pkg.version = level
158+
end
159+
147160
Context!(ctx; kwargs...)
148161
ctx.preview && preview_info()
149162
do_update_registry && update_registry(ctx)

0 commit comments

Comments
 (0)