From 5b9291ffcb3441d1d59fe019a24356a4db9121ff Mon Sep 17 00:00:00 2001 From: Valeria Fadeeva Date: Sun, 2 Feb 2025 21:03:15 +0500 Subject: [PATCH] Update --- locales/app.yml | 8 +++++++ scripts/update_system_alter.sh | 17 +++++++++++++++ scripts/update_system_overwrite.sh | 17 +++++++++++++++ src/main.rs | 34 ++++++++++++++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100755 scripts/update_system_alter.sh create mode 100755 scripts/update_system_overwrite.sh diff --git a/locales/app.yml b/locales/app.yml index 65588cd..bcbf71d 100644 --- a/locales/app.yml +++ b/locales/app.yml @@ -66,6 +66,14 @@ button.update_system: en: Update system ru_RU.UTF-8: Обновить систему +button.update_system_alter: + en: "Update system \n(If an update from the main button results in an error)" + ru_RU.UTF-8: "Обновить систему \n(Eсли обновление с осноновной кнопки приводит к ошибке)" + +button.update_system_overwrite: + en: "Update system \n(If there are file conflicts that you want to overwrite on top.\nAll actions are at your own risk.)" + ru_RU.UTF-8: "Обновить систему \n(Ecли существуют конфликты файлов, которые вы хотите перезаписать поверх.\nВсе действия вы совершаете на свой страх и риск.)" + button.unlock_repo_databases: en: Unlock repo databases ru_RU.UTF-8: Разблокировать базы данных репозиториев diff --git a/scripts/update_system_alter.sh b/scripts/update_system_alter.sh new file mode 100755 index 0000000..ee21335 --- /dev/null +++ b/scripts/update_system_alter.sh @@ -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 diff --git a/scripts/update_system_overwrite.sh b/scripts/update_system_overwrite.sh new file mode 100755 index 0000000..d840b78 --- /dev/null +++ b/scripts/update_system_overwrite.sh @@ -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 --overwrite=* + +echo "Finish!" + +echo "This window may close!" + +sleep 5 diff --git a/src/main.rs b/src/main.rs index d9952b8..e75eed6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -269,6 +269,40 @@ fn main() { }); }); + let mut btn_update_system_alter = + Button::default().with_label(&t!("button.update_system_alter")); + + btn_update_system_alter.set_callback(move |b| { + b.deactivate(); + std::thread::spawn({ + let mut b = b.clone(); + move || { + let cmd = + "/usr/bin/konsole --noclose --separate -e /bin/sh -c /usr/share/melawy-linux-welcome/scripts/update_system_alter.sh"; + let _ = run_cmd(cmd, None); + + b.activate(); + } + }); + }); + + let mut btn_update_system_overwrite = + Button::default().with_label(&t!("button.update_system_overwrite")); + + btn_update_system_overwrite.set_callback(move |b| { + b.deactivate(); + std::thread::spawn({ + let mut b = b.clone(); + move || { + let cmd = + "/usr/bin/konsole --noclose --separate -e /bin/sh -c /usr/share/melawy-linux-welcome/scripts/update_system_overwrite.sh"; + let _ = run_cmd(cmd, None); + + b.activate(); + } + }); + }); + let mut btn_unlock_repo_databases = Button::default().with_label(&t!("button.unlock_repo_databases"));