Update
This commit is contained in:
parent
0f1ea9e57a
commit
acee775350
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
authors = ["Valeria Fadeeva <valeria@fadeeva.me>"]
|
||||
name = "melawy-arch-linux-updater-tray"
|
||||
name = "melawy-linux-updater-tray"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
|
@ -11,6 +11,7 @@ edition = "2021"
|
|||
tray-item = { git = "https://github.com/olback/tray-item-rs", features = ["libappindicator"] }
|
||||
gtk = "0.18"
|
||||
glib = "0.20"
|
||||
rust-i18n = "3"
|
||||
|
||||
[build-dependencies]
|
||||
glib-build-tools = "0.20"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# melawy-arch-linux-updater-tray
|
||||
Melawy Arch Linux Updater Tray
|
||||
# melawy-linux-updater-tray
|
||||
Melawy Linux Updater Tray
|
||||
|
||||
### Donate
|
||||
[Tinkoff](https://www.tinkoff.ru/rm/fadeeva.valeriya96/9bLRi79066)
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
_version: 2
|
||||
|
||||
label.melawy_linux_updater:
|
||||
en: Melawy Linux Updater
|
||||
ru_RU.UTF-8: Установщик обновлений Melawy Linux
|
||||
|
||||
menu.update_system:
|
||||
en: Update system
|
||||
ru_RU.UTF-8: Обновить систему
|
||||
|
||||
menu.update_flatpak_applications:
|
||||
en: Update flatpak applications
|
||||
ru_RU.UTF-8: Обновить приложения flatpak
|
||||
|
||||
menu.quit:
|
||||
en: Quit
|
||||
ru_RU.UTF-8: Выйти
|
|
@ -1,18 +0,0 @@
|
|||
#!/usr/bin/env xdg-open
|
||||
[Desktop Entry]
|
||||
Name=Melawy Arch Linux Updater Tray
|
||||
Name[en_GB]=Melawy Arch Linux Updater Tray
|
||||
Name[en_US]=Melawy Arch Linux Updater Tray
|
||||
Name[ru_RU]=Melawy Arch Linux Иконка Обновления для Системного Трея
|
||||
Name[ru]=Melawy Arch Linux Иконка Обновления для Системного Трея
|
||||
Comment=Melawy Arch Linux Иконка Обновления для Системного Трея
|
||||
Comment[en_GB]=Melawy Arch Linux Updater Tray
|
||||
Comment[en_US]=Melawy Arch Linux Updater Tray
|
||||
Comment[ru_RU]=Melawy Arch Linux Иконка Обновления для Системного Трея
|
||||
Comment[ru]=Melawy Arch Linux Иконка Обновления для Системного Трея
|
||||
Icon=software-store
|
||||
Categories=System;Settings;Security;
|
||||
Exec=/usr/bin/melawy-arch-linux-updater-tray
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Terminal=false
|
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/env xdg-open
|
||||
[Desktop Entry]
|
||||
Name=Melawy Linux Updater Tray
|
||||
Name[en_GB]=Melawy Linux Updater Tray
|
||||
Name[en_US]=Melawy Linux Updater Tray
|
||||
Name[ru_RU]=Melawy Linux Иконка Обновления для Системного Трея
|
||||
Name[ru]=Melawy Linux Иконка Обновления для Системного Трея
|
||||
Comment=Melawy Linux Иконка Обновления для Системного Трея
|
||||
Comment[en_GB]=Melawy Linux Updater Tray
|
||||
Comment[en_US]=Melawy Linux Updater Tray
|
||||
Comment[ru_RU]=Melawy Linux Иконка Обновления для Системного Трея
|
||||
Comment[ru]=Melawy Linux Иконка Обновления для Системного Трея
|
||||
Icon=software-store
|
||||
Categories=System;Settings;Security;
|
||||
Exec=/usr/bin/melawy-linux-updater-tray
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Terminal=false
|
66
src/main.rs
66
src/main.rs
|
@ -1,12 +1,12 @@
|
|||
// #![cfg_attr(debug_assertions, allow(dead_code, unused_imports, unused_variables, unused_must_use))]
|
||||
|
||||
use rust_i18n::i18n;
|
||||
use rust_i18n::t;
|
||||
rust_i18n::i18n!("locales");
|
||||
|
||||
use {
|
||||
std::sync::mpsc,
|
||||
std::thread,
|
||||
std::time,
|
||||
std::process::Command,
|
||||
tray_item::IconSource,
|
||||
tray_item::TrayItem,
|
||||
std::env, std::process::Command, std::sync::mpsc, std::thread, std::time,
|
||||
tray_item::IconSource, tray_item::TrayItem,
|
||||
};
|
||||
|
||||
// use subprocess;
|
||||
|
@ -15,7 +15,7 @@ enum Message {
|
|||
Quit,
|
||||
NOP,
|
||||
UpdateSystem,
|
||||
UpdateFlatpak
|
||||
UpdateFlatpak,
|
||||
}
|
||||
|
||||
fn run_cmd(cmd_string: &str, lang_env_var: Option<&str>) {
|
||||
|
@ -24,16 +24,14 @@ fn run_cmd(cmd_string: &str, lang_env_var: Option<&str>) {
|
|||
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();
|
||||
|
||||
if args_vec.len() == 1 {
|
||||
let cmd = args_vec[0];
|
||||
|
||||
let status = Command::new(cmd).output();
|
||||
println!("{:#?}", status);
|
||||
}
|
||||
|
||||
else {
|
||||
} else {
|
||||
let cmd = args_vec[0];
|
||||
let new_args_vec = &args_vec[1..].to_vec();
|
||||
|
||||
|
@ -43,45 +41,60 @@ fn run_cmd(cmd_string: &str, lang_env_var: Option<&str>) {
|
|||
}
|
||||
|
||||
fn main() {
|
||||
i18n!("locales", fallback = "en");
|
||||
|
||||
let locale_key = "LANG";
|
||||
let locale = match env::var(locale_key) {
|
||||
Ok(val) => val,
|
||||
_ => String::from(""),
|
||||
};
|
||||
|
||||
rust_i18n::set_locale(&locale);
|
||||
// let _locale = rust_i18n::locale();
|
||||
|
||||
gtk::init().unwrap();
|
||||
|
||||
let mut tray = TrayItem::new("Melawy Arch Linux Updater", IconSource::Resource("software-store")).unwrap();
|
||||
let mut tray = TrayItem::new(
|
||||
&t!("label.melawy_linux_updater"),
|
||||
IconSource::Resource("software-store"),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
tray.add_label("Melawy Arch Linux Updater").unwrap();
|
||||
tray.add_label(&t!("label.melawy_linux_updater")).unwrap();
|
||||
let (tx, rx) = mpsc::sync_channel::<Message>(2);
|
||||
|
||||
let update_system_tx = tx.clone();
|
||||
tray.add_menu_item("Update system", move|| {
|
||||
tray.add_menu_item(&t!("menu.update_system"), move || {
|
||||
update_system_tx.send(Message::UpdateSystem).unwrap();
|
||||
}).unwrap();
|
||||
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
let update_flatpak_tx = tx.clone();
|
||||
tray.add_menu_item("Update flatpak applications", move || {
|
||||
tray.add_menu_item(&t!("menu.update_flatpak_applications"), move || {
|
||||
update_flatpak_tx.send(Message::UpdateFlatpak).unwrap();
|
||||
}).unwrap();
|
||||
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
let quit_tx = tx.clone();
|
||||
tray.add_menu_item("Quit", move || {
|
||||
tray.add_menu_item(&t!("menu.quit"), move || {
|
||||
quit_tx.send(Message::Quit).unwrap();
|
||||
}).unwrap();
|
||||
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
glib::idle_add_local(move || match rx.recv() {
|
||||
Ok(Message::Quit) => {
|
||||
// println!("Quit!");
|
||||
gtk::main_quit();
|
||||
println!("Quit!");
|
||||
glib::ControlFlow::Break
|
||||
}
|
||||
Ok(Message::UpdateSystem) => {
|
||||
println!("Update system");
|
||||
let cmd = "sudo arch-linux-updater";
|
||||
// println!("Update system");
|
||||
let cmd = "sudo melawy-linux-updater";
|
||||
let _ = run_cmd(cmd, None);
|
||||
glib::ControlFlow::Continue
|
||||
}
|
||||
Ok(Message::UpdateFlatpak) => {
|
||||
println!("Update flatpak applications");
|
||||
// println!("Update flatpak applications");
|
||||
let cmd = "/usr/bin/konsole --noclose --separate -e flatpak update";
|
||||
let _ = run_cmd(cmd, None);
|
||||
glib::ControlFlow::Continue
|
||||
|
@ -92,7 +105,6 @@ fn main() {
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
thread::spawn(move || {
|
||||
let mut count = 0;
|
||||
loop {
|
||||
|
|
Loading…
Reference in New Issue