diff --git a/src/config.rs b/src/config.rs index f551236d..412a0dc8 100644 --- a/src/config.rs +++ b/src/config.rs @@ -130,6 +130,7 @@ pub enum Step { Remotes, Restarts, Rtcl, + RubyGems, Rustup, Scoop, Sdkman, diff --git a/src/main.rs b/src/main.rs index c082742b..9789b701 100644 --- a/src/main.rs +++ b/src/main.rs @@ -360,6 +360,9 @@ 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::RubyGems, "rubygems", || { + generic::run_rubygems(&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))?; diff --git a/src/steps/generic.rs b/src/steps/generic.rs index eb9c5428..b6da5937 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -70,7 +70,7 @@ pub fn run_gem(base_dirs: &BaseDirs, run_type: RunType) -> Result<()> { let gem = utils::require("gem")?; base_dirs.home_dir().join(".gem").require()?; - print_separator("RubyGems"); + print_separator("Gems"); let mut command = run_type.execute(gem); command.arg("update"); @@ -83,6 +83,23 @@ pub fn run_gem(base_dirs: &BaseDirs, run_type: RunType) -> Result<()> { command.status_checked() } +pub fn run_rubygems(base_dirs: &BaseDirs, run_type: RunType) -> Result<()> { + let gem = utils::require("gem")?; + base_dirs.home_dir().join(".gem").require()?; + + print_separator("RubyGems"); + + let mut command = run_type.execute(gem); + command.arg("update --system"); + + if env::var_os("RBENV_SHELL").is_none() { + debug!("Detected rbenv. Avoiding --user-install"); + command.arg("--user-install"); + } + + command.status_checked() +} + pub fn run_haxelib_update(ctx: &ExecutionContext) -> Result<()> { let haxelib = utils::require("haxelib")?;