rust-archlinux-update/src/main.rs

65 lines
2.1 KiB
Rust
Raw Normal View History

2024-04-24 05:11:12 +00:00
/*
Rust Arch Linux Updater
Copyright (C) 2024 Luke Harding <luke@lukeh990.io>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
2024-04-24 16:42:00 +00:00
/*
main.rs
This file contains the primary logic of the application
*/
use colored::{ColoredString, Colorize};
2024-04-24 19:35:53 +00:00
mod pacman_api;
2024-04-24 16:42:00 +00:00
mod shell_commands;
2024-04-24 05:57:45 +00:00
fn main() {
2024-04-24 05:11:12 +00:00
println!("{}", copyright_notice());
if let Err(e) = pacman_api::check() {
error_println(e.to_string());
2024-04-24 05:57:45 +00:00
return;
} else {
notice_println("Pacman is installed\n")
2024-04-24 05:57:45 +00:00
}
notice_println("Running pacman update");
if let Err(e) = pacman_api::update_all() {
error_println(e.to_string());
return;
2024-04-24 19:35:53 +00:00
}
2024-04-28 16:48:57 +00:00
notice_println("Getting orphaned packages");
let result = match pacman_api::get_unused() {
Ok(result) => result,
Err(e) => {
error_println(e.to_string());
return;
}
};
if result.is_empty() {
println!("No Orphaned Packages Found.")
} else if let Err(e) = pacman_api::remove_unused(result) {
error_println(e.to_string());
return;
}
notice_println("Do Something Else");
2024-04-24 05:11:12 +00:00
}
fn copyright_notice() -> ColoredString {
"Rust Arch Linux Updater Copyright (C) 2024 Luke Harding <luke@lukeh990.io>\nThis program comes with ABSOLUTELY NO WARRANTY\nThis is free software, and you are welcome to redistribute it under certain conditions\n".italic()
}
pub fn error_println(msg: impl Into<String>) {
eprintln!("{}", msg.into().red().bold())
}
pub fn notice_println(msg: impl Into<String>) {
println!("{}", msg.into().green().bold())
2024-04-24 05:11:12 +00:00
}