Skip to content

Commit 632a365

Browse files
committed
🧹 actions: move Cmd into helper
1 parent 8e30930 commit 632a365

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

‎src/actions.rs‎

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,14 @@ pub fn change_dns_server(
6262
server_addr_ipv6: &str,
6363
dialog_tx: Sender<DialogMessage>,
6464
) {
65-
let status_code = Exec::cmd("/sbin/pkexec")
66-
.arg("bash")
67-
.arg("-c")
68-
.arg(format!(
65+
let status_code = utils::run_cmd(
66+
format!(
6967
"nmcli con mod '{conn_name}' ipv4.dns '{server_addr_ipv4}' && nmcli con mod \
7068
'{conn_name}' ipv6.dns '{server_addr_ipv6}' && systemctl restart NetworkManager"
71-
))
72-
.join()
73-
.unwrap();
69+
),
70+
true,
71+
)
72+
.unwrap();
7473
if status_code.success() {
7574
dialog_tx
7675
.send(DialogMessage {
@@ -91,15 +90,14 @@ pub fn change_dns_server(
9190
}
9291

9392
pub fn reset_dns_server(conn_name: &str, dialog_tx: Sender<DialogMessage>) {
94-
let status_code = Exec::cmd("/sbin/pkexec")
95-
.arg("bash")
96-
.arg("-c")
97-
.arg(format!(
93+
let status_code = utils::run_cmd(
94+
format!(
9895
"nmcli con mod '{conn_name}' ipv4.dns '' && nmcli con mod '{conn_name}' ipv6.dns '' \
9996
&& systemctl restart NetworkManager"
100-
))
101-
.join()
102-
.unwrap();
97+
),
98+
true,
99+
)
100+
.unwrap();
103101
if status_code.success() {
104102
dialog_tx
105103
.send(DialogMessage {
@@ -121,12 +119,7 @@ pub fn reset_dns_server(conn_name: &str, dialog_tx: Sender<DialogMessage>) {
121119

122120
pub fn remove_dblock(dialog_tx: Sender<DialogMessage>) {
123121
if Path::new("/var/lib/pacman/db.lck").exists() {
124-
let _ = Exec::cmd("/sbin/pkexec")
125-
.arg("bash")
126-
.arg("-c")
127-
.arg("rm /var/lib/pacman/db.lck")
128-
.join()
129-
.unwrap();
122+
let _ = utils::run_cmd("rm /var/lib/pacman/db.lck".into(), true).unwrap();
130123
if !Path::new("/var/lib/pacman/db.lck").exists() {
131124
dialog_tx
132125
.send(DialogMessage {

‎src/utils.rs‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::{fs, slice, str};
44

55
use gtk::prelude::*;
66

7-
use subprocess::{Exec, Redirection};
7+
use subprocess::{Exec, ExitStatus, Redirection};
88

99
#[derive(Debug)]
1010
pub enum PacmanWrapper {
@@ -120,6 +120,14 @@ pub fn run_cmd_terminal(cmd: String, escalate: bool) -> bool {
120120
exit_status.success()
121121
}
122122

123+
pub fn run_cmd(cmd: String, escalate: bool) -> anyhow::Result<ExitStatus> {
124+
if escalate {
125+
Ok(Exec::cmd("/sbin/pkexec").arg("bash").arg("-c").arg(cmd).join()?)
126+
} else {
127+
Ok(Exec::cmd("/sbin/bash").arg("-c").arg(cmd).join()?)
128+
}
129+
}
130+
123131
#[inline]
124132
pub fn get_pacman_wrapper() -> PacmanWrapper {
125133
if Path::new("/sbin/aura").exists() {

0 commit comments

Comments
 (0)