refactor(sudo): add SudoExecuteOpts builder functions and preserve_env enum

This commit is contained in:
Andre Toerien
2025-07-16 00:11:20 +02:00
committed by Gideon
parent 306ff3c7c5
commit b6c1290934
4 changed files with 105 additions and 85 deletions

View File

@@ -330,18 +330,10 @@ pub fn run_brew_formula(ctx: &ExecutionContext, variant: BrewVariant) -> Result<
print_separator(format!("{} ({})", variant.step_title(), sudo_as_user));
let sudo = ctx.require_sudo()?;
sudo.execute_opts(
ctx,
&binary_name,
SudoExecuteOpts {
set_home: true,
user: Some(&user.name),
..Default::default()
},
)?
.current_dir("/tmp") // brew needs a writable current directory
.arg("update")
.status_checked()?;
sudo.execute_opts(ctx, &binary_name, SudoExecuteOpts::new().set_home().user(&user.name))?
.current_dir("/tmp") // brew needs a writable current directory
.arg("update")
.status_checked()?;
return Ok(());
}
}
@@ -557,17 +549,10 @@ pub fn run_nix_self_upgrade(ctx: &ExecutionContext) -> Result<()> {
let nix_args = nix_args();
if multi_user {
let sudo = ctx.require_sudo()?;
sudo.execute_opts(
ctx,
&nix,
SudoExecuteOpts {
interactive: true,
..Default::default()
},
)?
.args(nix_args)
.arg("upgrade-nix")
.status_checked()
sudo.execute_opts(ctx, &nix, SudoExecuteOpts::new().interactive())?
.args(nix_args)
.arg("upgrade-nix")
.status_checked()
} else {
ctx.execute(&nix).args(nix_args).arg("upgrade-nix").status_checked()
}