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>"]
name = "melawy-linux-updater-tray"
version = "0.1.0"
edition = "2021"
edition = "2024"
# 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
ru_RU.UTF-8: Установщик обновлений Melawy Linux
menu.check_updates:
en: Chech updates
ru_RU.UTF-8: Проверить обновления
menu.update_system:
en: Update system
ru_RU.UTF-8: Обновить систему
menu.update_system_alter:
en: Update system alter method
ru_RU.UTF-8: Обновить систему альтернативным методом
menu.update_flatpak_applications:
en: Update flatpak applications
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 {
Quit,
NOP,
CheckUpdates,
UpdateSystem,
UpdateSystemAlter,
UpdateFlatpak,
}
fn run_cmd(cmd_string: &str, lang_env_var: Option<&str>) {
if lang_env_var.is_some() {
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();
@ -63,12 +65,26 @@ fn main() {
tray.add_label(&t!("label.melawy_linux_updater")).unwrap();
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();
tray.add_menu_item(&t!("menu.update_system"), move || {
update_system_tx.send(Message::UpdateSystem).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();
tray.add_menu_item(&t!("menu.update_flatpak_applications"), move || {
update_flatpak_tx.send(Message::UpdateFlatpak).unwrap();
@ -87,12 +103,24 @@ fn main() {
gtk::main_quit();
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) => {
// println!("Update system");
let cmd = "sudo melawy-linux-updater";
let _ = run_cmd(cmd, None);
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) => {
// println!("Update flatpak applications");
let cmd = "/usr/bin/konsole --noclose --separate -e flatpak update";