This commit is contained in:
Valeria Fadeeva 2025-02-24 11:35:11 +05:00
parent a21a17dba7
commit d563f576b3
5 changed files with 64 additions and 2 deletions

View File

@ -2,7 +2,7 @@
authors = ["Valeria Fadeeva <valeria@fadeeva.me>"] authors = ["Valeria Fadeeva <valeria@fadeeva.me>"]
name = "melawy-linux-updater-tray" name = "melawy-linux-updater-tray"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -4,10 +4,18 @@ label.melawy_linux_updater:
en: Melawy Linux Updater en: Melawy Linux Updater
ru_RU.UTF-8: Установщик обновлений Melawy Linux ru_RU.UTF-8: Установщик обновлений Melawy Linux
menu.check_updates:
en: Chech updates
ru_RU.UTF-8: Проверить обновления
menu.update_system: menu.update_system:
en: Update system en: Update system
ru_RU.UTF-8: Обновить систему ru_RU.UTF-8: Обновить систему
menu.update_system_alter:
en: Update system alter method
ru_RU.UTF-8: Обновить систему альтернативным методом
menu.update_flatpak_applications: menu.update_flatpak_applications:
en: Update flatpak applications en: Update flatpak applications
ru_RU.UTF-8: Обновить приложения flatpak ru_RU.UTF-8: Обновить приложения flatpak

9
scripts/checkupdates.sh Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
checkupdates
echo "Finish!"
echo "This window may close!"
sleep 5

17
scripts/update_system_alter.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
if [[ "$UID" != 0 ]]; then
echo "USER NOT ROOT"
sudo "$0"
exit
else
echo "USER IS ROOT"
fi
pacman -Syu
echo "Finish!"
echo "This window may close!"
sleep 5

View File

@ -14,14 +14,16 @@ use {
enum Message { enum Message {
Quit, Quit,
NOP, NOP,
CheckUpdates,
UpdateSystem, UpdateSystem,
UpdateSystemAlter,
UpdateFlatpak, UpdateFlatpak,
} }
fn run_cmd(cmd_string: &str, lang_env_var: Option<&str>) { fn run_cmd(cmd_string: &str, lang_env_var: Option<&str>) {
if lang_env_var.is_some() { if lang_env_var.is_some() {
let key: &str = "LANG"; let key: &str = "LANG";
std::env::set_var(key, lang_env_var.unwrap_or("C.UTF-8")); unsafe { std::env::set_var(key, lang_env_var.unwrap_or("C.UTF-8")) };
} }
let args_vec: Vec<&str> = cmd_string.split_whitespace().collect(); let args_vec: Vec<&str> = cmd_string.split_whitespace().collect();
@ -63,12 +65,26 @@ fn main() {
tray.add_label(&t!("label.melawy_linux_updater")).unwrap(); tray.add_label(&t!("label.melawy_linux_updater")).unwrap();
let (tx, rx) = mpsc::sync_channel::<Message>(2); let (tx, rx) = mpsc::sync_channel::<Message>(2);
let check_updates_tx = tx.clone();
tray.add_menu_item(&t!("menu.check_updates"), move || {
check_updates_tx.send(Message::CheckUpdates).unwrap();
})
.unwrap();
let update_system_tx = tx.clone(); let update_system_tx = tx.clone();
tray.add_menu_item(&t!("menu.update_system"), move || { tray.add_menu_item(&t!("menu.update_system"), move || {
update_system_tx.send(Message::UpdateSystem).unwrap(); update_system_tx.send(Message::UpdateSystem).unwrap();
}) })
.unwrap(); .unwrap();
let update_system_alter_tx = tx.clone();
tray.add_menu_item(&t!("menu.update_system_alter"), move || {
update_system_alter_tx
.send(Message::UpdateSystemAlter)
.unwrap();
})
.unwrap();
let update_flatpak_tx = tx.clone(); let update_flatpak_tx = tx.clone();
tray.add_menu_item(&t!("menu.update_flatpak_applications"), move || { tray.add_menu_item(&t!("menu.update_flatpak_applications"), move || {
update_flatpak_tx.send(Message::UpdateFlatpak).unwrap(); update_flatpak_tx.send(Message::UpdateFlatpak).unwrap();
@ -87,12 +103,24 @@ fn main() {
gtk::main_quit(); gtk::main_quit();
glib::ControlFlow::Break glib::ControlFlow::Break
} }
Ok(Message::CheckUpdates) => {
// println!("Checking Updates");
let cmd = "/usr/bin/konsole --noclose --separate -e /bin/sh -c /usr/share/melawy-linux-updater-tray/scripts/checkupdates.sh";
let _ = run_cmd(cmd, None);
glib::ControlFlow::Continue
}
Ok(Message::UpdateSystem) => { Ok(Message::UpdateSystem) => {
// println!("Update system"); // println!("Update system");
let cmd = "sudo melawy-linux-updater"; let cmd = "sudo melawy-linux-updater";
let _ = run_cmd(cmd, None); let _ = run_cmd(cmd, None);
glib::ControlFlow::Continue glib::ControlFlow::Continue
} }
Ok(Message::UpdateSystemAlter) => {
// println!("Update system alter");
let cmd = "/usr/bin/konsole --noclose --separate -e /bin/sh -c /usr/share/melawy-linux-updater-tray/scripts/update_system_alter.sh";
let _ = run_cmd(cmd, None);
glib::ControlFlow::Continue
}
Ok(Message::UpdateFlatpak) => { Ok(Message::UpdateFlatpak) => {
// println!("Update flatpak applications"); // println!("Update flatpak applications");
let cmd = "/usr/bin/konsole --noclose --separate -e flatpak update"; let cmd = "/usr/bin/konsole --noclose --separate -e flatpak update";