👷 run some functions in new thread
This commit is contained in:
parent
39e7df3f4c
commit
e729b5e1c9
|
@ -4,9 +4,9 @@ version = 3
|
|||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "0.7.19"
|
||||
version = "0.7.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
|
||||
checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
@ -102,9 +102,9 @@ checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
|
|||
|
||||
[[package]]
|
||||
name = "bytes"
|
||||
version = "1.2.1"
|
||||
version = "1.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"
|
||||
checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c"
|
||||
|
||||
[[package]]
|
||||
name = "cachyos-hello"
|
||||
|
@ -153,9 +153,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.76"
|
||||
version = "1.0.77"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f"
|
||||
checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
|
||||
|
||||
[[package]]
|
||||
name = "cfg-expr"
|
||||
|
@ -671,9 +671,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "1.9.1"
|
||||
version = "1.9.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
|
||||
checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"hashbrown",
|
||||
|
@ -850,9 +850,9 @@ checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
|
|||
|
||||
[[package]]
|
||||
name = "openssl"
|
||||
version = "0.10.42"
|
||||
version = "0.10.43"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13"
|
||||
checksum = "020433887e44c27ff16365eaa2d380547a94544ad509aff6eb5b6e3e0b27b376"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"cfg-if",
|
||||
|
@ -882,9 +882,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
|||
|
||||
[[package]]
|
||||
name = "openssl-sys"
|
||||
version = "0.9.77"
|
||||
version = "0.9.78"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a"
|
||||
checksum = "07d5c8cb6e57b3a3612064d7b18b117912b4ce70955c2504d4b741c9e244b132"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"cc",
|
||||
|
@ -936,9 +936,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
|
|||
|
||||
[[package]]
|
||||
name = "pest"
|
||||
version = "2.4.1"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a528564cc62c19a7acac4d81e01f39e53e25e17b934878f4c6d25cc2836e62f8"
|
||||
checksum = "5f400b0f7905bf702f9f3dc3df5a121b16c54e9e8012c082905fdf09a931861a"
|
||||
dependencies = [
|
||||
"thiserror",
|
||||
"ucd-trie",
|
||||
|
@ -1175,9 +1175,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.88"
|
||||
version = "1.0.89"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e8b3801309262e8184d9687fb697586833e939767aea0dda89f5a8e650e8bd7"
|
||||
checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"ryu",
|
||||
|
@ -1312,9 +1312,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
|
|||
|
||||
[[package]]
|
||||
name = "tokio"
|
||||
version = "1.21.2"
|
||||
version = "1.22.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099"
|
||||
checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"bytes",
|
||||
|
|
|
@ -19,7 +19,7 @@ gdk = "0.16.0"
|
|||
gdk-pixbuf = "0.16.3"
|
||||
glib = "0.16.3"
|
||||
serde = { version = "1.0.147", features = ["derive"] }
|
||||
serde_json = "1.0.88"
|
||||
serde_json = "1.0.89"
|
||||
reqwest = { version = "0.11.13", features = ["blocking"] }
|
||||
|
||||
[profile.release]
|
||||
|
|
90
src/pages.rs
90
src/pages.rs
|
@ -36,33 +36,45 @@ fn create_fixes_section() -> gtk::Box {
|
|||
let rankmirrors_btn = gtk::Button::with_label("Rank mirrors");
|
||||
|
||||
removelock_btn.connect_clicked(move |_| {
|
||||
if Path::new("/var/lib/pacman/db.lck").exists() {
|
||||
let _ = Exec::cmd("/sbin/pkexec")
|
||||
.arg("bash")
|
||||
.arg("-c")
|
||||
.arg("rm /var/lib/pacman/db.lck")
|
||||
.join()
|
||||
.unwrap();
|
||||
if !Path::new("/var/lib/pacman/db.lck").exists() {
|
||||
let dialog = gtk::MessageDialog::builder()
|
||||
.message_type(gtk::MessageType::Info)
|
||||
.text("Pacman db lock was removed!")
|
||||
.build();
|
||||
dialog.show();
|
||||
// Spawn child process in separate thread.
|
||||
std::thread::spawn(move || {
|
||||
if Path::new("/var/lib/pacman/db.lck").exists() {
|
||||
let _ = Exec::cmd("/sbin/pkexec")
|
||||
.arg("bash")
|
||||
.arg("-c")
|
||||
.arg("rm /var/lib/pacman/db.lck")
|
||||
.join()
|
||||
.unwrap();
|
||||
if !Path::new("/var/lib/pacman/db.lck").exists() {
|
||||
let dialog = gtk::MessageDialog::builder()
|
||||
.message_type(gtk::MessageType::Info)
|
||||
.text("Pacman db lock was removed!")
|
||||
.build();
|
||||
dialog.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
reinstall_btn.connect_clicked(move |_| {
|
||||
let _ = utils::run_cmd_terminal(String::from("pacman -S $(pacman -Qnq)"), true);
|
||||
// Spawn child process in separate thread.
|
||||
std::thread::spawn(move || {
|
||||
let _ = utils::run_cmd_terminal(String::from("pacman -S $(pacman -Qnq)"), true);
|
||||
});
|
||||
});
|
||||
refreshkeyring_btn.connect_clicked(on_refreshkeyring_btn_clicked);
|
||||
update_system_btn.connect_clicked(on_update_system_btn_clicked);
|
||||
remove_orphans_btn.connect_clicked(move |_| {
|
||||
let _ = utils::run_cmd_terminal(String::from("pacman -Rns $(pacman -Qtdq)"), true);
|
||||
// Spawn child process in separate thread.
|
||||
std::thread::spawn(move || {
|
||||
let _ = utils::run_cmd_terminal(String::from("pacman -Rns $(pacman -Qtdq)"), true);
|
||||
});
|
||||
});
|
||||
clear_pkgcache_btn.connect_clicked(on_clear_pkgcache_btn_clicked);
|
||||
rankmirrors_btn.connect_clicked(move |_| {
|
||||
let _ = utils::run_cmd_terminal(String::from("cachyos-rate-mirrors"), true);
|
||||
// Spawn child process in separate thread.
|
||||
std::thread::spawn(move || {
|
||||
let _ = utils::run_cmd_terminal(String::from("cachyos-rate-mirrors"), true);
|
||||
});
|
||||
});
|
||||
|
||||
topbox.pack_start(&label, true, false, 1);
|
||||
|
@ -150,16 +162,19 @@ fn create_options_section() -> gtk::Box {
|
|||
apparmor_btn.connect_clicked(on_servbtn_clicked);
|
||||
ananicy_cpp_btn.connect_clicked(on_servbtn_clicked);
|
||||
dnscrypt_btn.connect_clicked(move |_| {
|
||||
let pkg_name = "cachyos-dnscrypt-proxy";
|
||||
let service_unit_name = "dnscrypt-proxy.service";
|
||||
if !check_is_pkg_installed(pkg_name) {
|
||||
let _ = utils::run_cmd_terminal(format!("pacman -S {}", pkg_name), true);
|
||||
load_enabled_units();
|
||||
return;
|
||||
}
|
||||
if !is_local_service_enabled(service_unit_name) {
|
||||
load_enabled_units();
|
||||
}
|
||||
// Spawn child process in separate thread.
|
||||
std::thread::spawn(move || {
|
||||
let pkg_name = "cachyos-dnscrypt-proxy";
|
||||
let service_unit_name = "dnscrypt-proxy.service";
|
||||
if !check_is_pkg_installed(pkg_name) {
|
||||
let _ = utils::run_cmd_terminal(format!("pacman -S {}", pkg_name), true);
|
||||
load_enabled_units();
|
||||
return;
|
||||
}
|
||||
if !is_local_service_enabled(service_unit_name) {
|
||||
load_enabled_units();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
topbox.pack_start(&label, true, false, 1);
|
||||
|
@ -403,10 +418,13 @@ fn on_refreshkeyring_btn_clicked(_: >k::Button) {
|
|||
})
|
||||
.collect::<String>();
|
||||
|
||||
let _ = utils::run_cmd_terminal(
|
||||
format!("pacman-key --init && pacman-key --populate {}", needles),
|
||||
true,
|
||||
);
|
||||
// Spawn child process in separate thread.
|
||||
std::thread::spawn(move || {
|
||||
let _ = utils::run_cmd_terminal(
|
||||
format!("pacman-key --init && pacman-key --populate {}", needles),
|
||||
true,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
fn on_update_system_btn_clicked(_: >k::Button) {
|
||||
|
@ -416,7 +434,10 @@ fn on_update_system_btn_clicked(_: >k::Button) {
|
|||
PacmanWrapper::Paru => ("paru --removemake -Syu", false),
|
||||
_ => ("pacman -Syu", true),
|
||||
};
|
||||
let _ = utils::run_cmd_terminal(String::from(cmd), escalate);
|
||||
// Spawn child process in separate thread.
|
||||
std::thread::spawn(move || {
|
||||
let _ = utils::run_cmd_terminal(String::from(cmd), escalate);
|
||||
});
|
||||
}
|
||||
|
||||
fn on_clear_pkgcache_btn_clicked(_: >k::Button) {
|
||||
|
@ -426,7 +447,10 @@ fn on_clear_pkgcache_btn_clicked(_: >k::Button) {
|
|||
PacmanWrapper::Paru => ("paru -Sc", false),
|
||||
_ => ("pacman -Sc", true),
|
||||
};
|
||||
let _ = utils::run_cmd_terminal(String::from(cmd), escalate);
|
||||
// Spawn child process in separate thread.
|
||||
std::thread::spawn(move || {
|
||||
let _ = utils::run_cmd_terminal(String::from(cmd), escalate);
|
||||
});
|
||||
}
|
||||
|
||||
fn on_appbtn_clicked(button: >k::Button) {
|
||||
|
|
Loading…
Reference in New Issue