diff --git a/src/config.rs b/src/config.rs index c3e29153..638d268b 100644 --- a/src/config.rs +++ b/src/config.rs @@ -153,6 +153,7 @@ pub enum Step { Tlmgr, Tmux, Toolbx, + Uv, Vagrant, Vcpkg, Vim, diff --git a/src/main.rs b/src/main.rs index 4b743bd0..9f41858f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -419,6 +419,7 @@ fn run() -> Result<()> { generic::run_lensfun_update_data(&ctx) })?; runner.execute(Step::Poetry, "Poetry", || generic::run_poetry(&ctx))?; + runner.execute(Step::Uv, "uv", || generic::run_uv(&ctx))?; runner.execute(Step::Zvm, "ZVM", || generic::run_zvm(&ctx))?; runner.execute(Step::Aqua, "aqua", || generic::run_aqua(&ctx))?; diff --git a/src/steps/generic.rs b/src/steps/generic.rs index f2c5e1e8..a30d274b 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -1024,6 +1024,26 @@ pub fn run_poetry(ctx: &ExecutionContext) -> Result<()> { ctx.run_type().execute(poetry).args(["self", "update"]).status_checked() } +pub fn run_uv(ctx: &ExecutionContext) -> Result<()> { + let uv_exec = require("uv")?; + print_separator("uv"); + + ctx.run_type() + .execute(&uv_exec) + .args(["self", "update"]) + .status_checked() + .ok(); + + // ignoring self-update errors, because they are likely due to uv's + // installation being managed by another package manager, in which + // case another step will handle the update. + + ctx.run_type() + .execute(&uv_exec) + .args(["tool", "upgrade", "--all"]) + .status_checked() +} + /// Involve `zvm upgrade` to update ZVM pub fn run_zvm(ctx: &ExecutionContext) -> Result<()> { let zvm = require("zvm")?;