From 6b7f6f4cc7fd98d972e771df06af7c0c61774f4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Sch=C3=B6nauer?= <37108907+DottoDev@users.noreply.github.com> Date: Thu, 2 Feb 2023 21:48:48 +0000 Subject: [PATCH] ruby_gems: Fixes asdf (#350) --- src/steps/generic.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/steps/generic.rs b/src/steps/generic.rs index 4151057b..179b9779 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -85,21 +85,27 @@ pub fn run_gem(base_dirs: &BaseDirs, run_type: RunType) -> Result<()> { pub fn run_rubygems(ctx: &ExecutionContext) -> Result<()> { ctx.base_dirs().home_dir().join(".gem").require()?; + let gem = require("gem")?; print_separator("RubyGems"); - if let Some(sudo) = &ctx.sudo() { + let gem_path_str = gem.as_os_str(); + if gem_path_str.to_str().unwrap().contains("asdf") { + ctx.run_type() + .execute(gem) + .args(["update", "--system"]) + .status_checked()?; + } else if let Some(sudo) = &ctx.sudo() { if !std::path::Path::new("/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb").exists() { ctx.run_type() .execute(sudo) .arg("-EH") - .arg(require("gem")?) + .arg(gem) .args(["update", "--system"]) .status_checked()?; } } else { print_warning("No sudo detected. Skipping system upgrade"); } - Ok(()) }