From d4548b2f9a8762421a482bba077664b6452bfa13 Mon Sep 17 00:00:00 2001 From: slowsage <84777606+slowsage@users.noreply.github.com> Date: Tue, 30 May 2023 03:04:23 -0400 Subject: [PATCH] feat: Add arguments to pipupgrade and fix enable_pipupgrade check (#448) --- config.example.toml | 7 ++++--- src/config.rs | 8 ++++++++ src/steps/generic.rs | 8 +++++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/config.example.toml b/config.example.toml index 1641b15b..62c2744a 100644 --- a/config.example.toml +++ b/config.example.toml @@ -110,9 +110,10 @@ #nix_arguments = "--flake" [python] -#enable_pip_review = true ###disabled by default -#enable_pip_review_local = true ###disabled by default -#enable_pipupgrade = true ###disabled by default +#enable_pip_review = true ###disabled by default +#enable_pip_review_local = true ###disabled by default +#enable_pipupgrade = true ###disabled by default +#pipupgrade_arguments = "-y -u --pip-path pip" ###disabled by default [windows] # Manually select Windows updates diff --git a/src/config.rs b/src/config.rs index 5718bd06..587e3789 100644 --- a/src/config.rs +++ b/src/config.rs @@ -243,6 +243,7 @@ pub struct Python { enable_pip_review: Option, enable_pip_review_local: Option, enable_pipupgrade: Option, + pipupgrade_arguments: Option, } #[derive(Deserialize, Default, Debug, Merge)] @@ -1462,6 +1463,13 @@ impl Config { .and_then(|python| python.enable_pipupgrade) .unwrap_or(false); } + pub fn pipupgrade_arguments(&self) -> &str { + self.config_file + .python + .as_ref() + .and_then(|s| s.pipupgrade_arguments.as_deref()) + .unwrap_or("") + } pub fn enable_pip_review(&self) -> bool { return self .config_file diff --git a/src/steps/generic.rs b/src/steps/generic.rs index 386d057d..88024f33 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -444,17 +444,19 @@ pub fn run_pipupgrade_update(ctx: &ExecutionContext) -> Result<()> { let pipupgrade = require("pipupgrade")?; print_separator("Pipupgrade"); - if !ctx.config().enable_pip_review() { + if !ctx.config().enable_pipupgrade() { print_warning( "Pipupgrade is disabled by default. Enable it by setting enable_pipupgrade=true in the configuration.", ); return Err(SkipStep(String::from("Pipupgrade is disabled by default")).into()); } - ctx.run_type().execute(pipupgrade).status_checked()?; + ctx.run_type() + .execute(pipupgrade) + .args(ctx.config().pipupgrade_arguments().split_whitespace()) + .status_checked()?; Ok(()) } - pub fn run_stack_update(ctx: &ExecutionContext) -> Result<()> { if require("ghcup").is_ok() { // `ghcup` is present and probably(?) being used to install `stack`.