67 lines
2.1 KiB
Rust
67 lines
2.1 KiB
Rust
/*
|
|
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/>.
|
|
*/
|
|
|
|
/*
|
|
main.rs
|
|
This file contains the primary logic of the application
|
|
*/
|
|
|
|
use colored::{ColoredString, Colorize};
|
|
|
|
use apis::pacman;
|
|
|
|
mod apis;
|
|
mod shell_commands;
|
|
|
|
fn main() {
|
|
println!("{}", copyright_notice());
|
|
|
|
if let Err(e) = pacman::check() {
|
|
error_println(e.to_string());
|
|
return;
|
|
} else {
|
|
notice_println("Pacman is installed\n")
|
|
}
|
|
|
|
notice_println("Running pacman update");
|
|
if let Err(e) = pacman::update_all() {
|
|
error_println(e.to_string());
|
|
return;
|
|
}
|
|
|
|
notice_println("Getting orphaned packages");
|
|
let result = match pacman::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::remove_unused(result) {
|
|
error_println(e.to_string());
|
|
return;
|
|
}
|
|
|
|
notice_println("\nUpdate process complete!");
|
|
}
|
|
|
|
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())
|
|
}
|