refactor: deprioritize please-sudo (#541)

refactor: deprioritze please-sudo
This commit is contained in:
SteveLauC
2023-08-22 09:14:29 +08:00
committed by GitHub
parent dc78b00c3c
commit 13a46a44a8

View File

@@ -26,10 +26,10 @@ impl Sudo {
pub fn detect() -> Option<Self> { pub fn detect() -> Option<Self> {
which("doas") which("doas")
.map(|p| (p, SudoKind::Doas)) .map(|p| (p, SudoKind::Doas))
.or_else(|| which("please").map(|p| (p, SudoKind::Please)))
.or_else(|| which("sudo").map(|p| (p, SudoKind::Sudo))) .or_else(|| which("sudo").map(|p| (p, SudoKind::Sudo)))
.or_else(|| which("gsudo").map(|p| (p, SudoKind::Gsudo))) .or_else(|| which("gsudo").map(|p| (p, SudoKind::Gsudo)))
.or_else(|| which("pkexec").map(|p| (p, SudoKind::Pkexec))) .or_else(|| which("pkexec").map(|p| (p, SudoKind::Pkexec)))
.or_else(|| which("please").map(|p| (p, SudoKind::Please)))
.map(|(path, kind)| Self { path, kind }) .map(|(path, kind)| Self { path, kind })
} }
@@ -55,12 +55,6 @@ impl Sudo {
// See: https://man.openbsd.org/doas // See: https://man.openbsd.org/doas
cmd.arg("echo"); cmd.arg("echo");
} }
SudoKind::Please => {
// From `man please`
// -w, --warm
// Warm the access token and exit.
cmd.arg("-w");
}
SudoKind::Sudo => { SudoKind::Sudo => {
// From `man sudo` on macOS: // From `man sudo` on macOS:
// -v, --validate // -v, --validate
@@ -85,6 +79,12 @@ impl Sudo {
// See: https://linux.die.net/man/1/pkexec // See: https://linux.die.net/man/1/pkexec
cmd.arg("echo"); cmd.arg("echo");
} }
SudoKind::Please => {
// From `man please`
// -w, --warm
// Warm the access token and exit.
cmd.arg("-w");
}
} }
cmd.status_checked().wrap_err("Failed to elevate permissions") cmd.status_checked().wrap_err("Failed to elevate permissions")
} }
@@ -112,10 +112,10 @@ impl Sudo {
#[strum(serialize_all = "lowercase")] #[strum(serialize_all = "lowercase")]
pub enum SudoKind { pub enum SudoKind {
Doas, Doas,
Please,
Sudo, Sudo,
Gsudo, Gsudo,
Pkexec, Pkexec,
Please,
} }
impl AsRef<OsStr> for Sudo { impl AsRef<OsStr> for Sudo {