Compare commits

...

3 Commits

4 changed files with 30 additions and 5 deletions

View File

@ -1 +0,0 @@
pub mod pacman;

View File

@ -13,10 +13,10 @@
use colored::{ColoredString, Colorize}; use colored::{ColoredString, Colorize};
use apis::pacman; use wrappers::pacman;
mod apis;
mod shell_commands; mod shell_commands;
mod wrappers;
fn main() { fn main() {
println!("{}", copyright_notice()); println!("{}", copyright_notice());
@ -50,6 +50,12 @@ fn main() {
return; return;
} }
notice_println("Clearing Cache");
if let Err(e) = pacman::clean_cache() {
error_println(e.to_string());
return;
}
notice_println("\nUpdate process complete!"); notice_println("\nUpdate process complete!");
} }

14
src/wrappers/mod.rs Normal file
View File

@ -0,0 +1,14 @@
/*
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/>.
*/
/*
wrappers/mod.rs
Just makes pacman accessible
*/
pub mod pacman;

View File

@ -7,8 +7,8 @@
*/ */
/* /*
pacman.rs wrappers/pacman.rs
This module provides an api to make working with Pacman much easier. This module provides a wrapper to make working with Pacman much easier.
*/ */
use std::{error, fmt, result}; use std::{error, fmt, result};
@ -87,6 +87,12 @@ pub fn remove_unused(packages: Vec<String>) -> Result<()> {
check_exit_code(exit_status) check_exit_code(exit_status)
} }
pub fn clean_cache() -> Result<()> {
let exit_status = shell_commands::execute_in_sh("sudo pacman -Scc")?;
check_exit_code(exit_status)
}
fn check_exit_code(exit_status: ExitStatus) -> Result<()> { fn check_exit_code(exit_status: ExitStatus) -> Result<()> {
if !exit_status.success() { if !exit_status.success() {
let exit_code = match exit_status.code() { let exit_code = match exit_status.code() {