diff options
author | Andrew Fontaine | 2022-01-26 22:10:49 -0500 |
---|---|---|
committer | Andrew Fontaine | 2022-01-28 16:18:12 -0500 |
commit | 874af9b05bec0bd73a333166a8b5291ecb1c0e3e (patch) | |
tree | 3ec4c68c7a2bb93baea99c91c272c592eac3447a /src/lib.rs | |
parent | 0ac333cdc03407538b5b19d60a8e7c64588490fb (diff) |
Add custom sudo command support
This is useful for nodes that utilize `doas` instead of `sudo`.
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -161,6 +161,7 @@ pub struct CmdOverrides { pub magic_rollback: Option<bool>, pub temp_path: Option<String>, pub confirm_timeout: Option<u16>, + pub sudo: Option<String>, pub dry_activate: bool, } @@ -350,7 +351,7 @@ impl<'a> DeployData<'a> { let profile_path = self.get_profile_path()?; let sudo: Option<String> = match self.merged_settings.user { - Some(ref user) if user != &ssh_user => Some(format!("sudo -u {}", user)), + Some(ref user) if user != &ssh_user => Some(format!("{} {}", self.get_sudo(), user)), _ => None, }; @@ -392,6 +393,13 @@ impl<'a> DeployData<'a> { }; Ok(profile_user) } + + fn get_sudo(&'a self) -> String { + return match self.merged_settings.sudo { + Some(ref x) => x.clone(), + None => "sudo -u".to_string() + }; + } } pub fn make_deploy_data<'a, 's>( |