diff --git a/src/config.rs b/src/config.rs index 4e69b0b9..8078c45d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -62,7 +62,7 @@ macro_rules! get_deprecated { type Commands = BTreeMap; -#[derive(ArgEnum, EnumString, EnumVariantNames, Debug, Clone, PartialEq, Deserialize, EnumIter, Copy)] +#[derive(ArgEnum, EnumString, EnumVariantNames, Debug, Clone, PartialEq, Eq, Deserialize, EnumIter, Copy)] #[clap(rename_all = "snake_case")] #[serde(rename_all = "snake_case")] #[strum(serialize_all = "snake_case")] @@ -99,6 +99,7 @@ pub enum Step { GnomeShellExtensions, HomeManager, Jetpack, + Julia, Kakoune, Krew, Macports, diff --git a/src/error.rs b/src/error.rs index 34605806..5ec6ce75 100644 --- a/src/error.rs +++ b/src/error.rs @@ -2,7 +2,7 @@ use std::process::ExitStatus; use thiserror::Error; -#[derive(Error, Debug, PartialEq)] +#[derive(Error, Debug, PartialEq, Eq)] pub enum TopgradeError { #[error("{0}")] ProcessFailed(ExitStatus), diff --git a/src/main.rs b/src/main.rs index e47b1770..f6eea263 100644 --- a/src/main.rs +++ b/src/main.rs @@ -342,6 +342,7 @@ fn run() -> Result<()> { runner.execute(Step::Composer, "composer", || generic::run_composer_update(&ctx))?; runner.execute(Step::Krew, "krew", || generic::run_krew_upgrade(run_type))?; runner.execute(Step::Gem, "gem", || generic::run_gem(&base_dirs, run_type))?; + runner.execute(Step::Julia, "julia", || generic::update_julia_packages(&ctx))?; runner.execute(Step::Haxelib, "haxelib", || generic::run_haxelib_update(&ctx))?; runner.execute(Step::Sheldon, "sheldon", || generic::run_sheldon(&ctx))?; runner.execute(Step::Rtcl, "rtcl", || generic::run_rtcl(&ctx))?; diff --git a/src/steps/generic.rs b/src/steps/generic.rs index 698f10d8..485bd7d5 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -496,3 +496,14 @@ pub fn run_ghcli_extensions_upgrade(ctx: &ExecutionContext) -> Result<()> { .args(&["extension", "upgrade", "--all"]) .check_run() } + +pub fn update_julia_packages(ctx: &ExecutionContext) -> Result<()> { + let julia = utils::require("julia")?; + + print_separator("Julia Packages"); + + ctx.run_type() + .execute(&julia) + .args(&["-e", "using Pkg; Pkg.update()"]) + .check_run() +}