From 9f60a04bc547f61af52b942f94d30c2cb4e472a1 Mon Sep 17 00:00:00 2001 From: jnats Date: Tue, 28 Sep 2021 15:52:34 +0100 Subject: [PATCH] initial implementation of pacman command passthrough --- src/main.rs | 22 +++++++++++++++++++--- src/mods/help.rs | 4 +++- src/mods/ver.rs | 2 +- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index d39a112..978310c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ mod mods; -use mods::{clearcache::clearcache, clone::clone, help::help, install::install, search::{a_search, r_search}, uninstall::uninstall, upgrade::upgrade, update::update, ver::ver, strs::inf, strs::err_unrec}; +use mods::{clearcache::clearcache, clone::clone, help::help, install::install, search::{a_search, r_search}, uninstall::uninstall, upgrade::upgrade, update::update, ver::ver, strs::inf, strs::err_unrec, strs::err_rec}; use std::{env, process::exit, process::Command, process::Stdio}; fn main() { @@ -114,8 +114,24 @@ fn main() { ver(); // help - } else { + } else if oper == "-h" || oper == "help" { help(); - exit(0); + + // pacman passthrough + } else { + let pass = Command::new("pacman") + .args(env::args().skip(1)) + .status() + .expect("Something has gone wrong."); + + match pass.code() { + Some(1) => { + err_rec(format!("No such operation \"{}\"", args.join(" "))); + inf(format!("Try running \"ame help\" for an overview of how to use ame")) + } + Some(_) => {} + None => { + err_unrec(format!("Something has gone terribly wrong.")) + }} } } diff --git a/src/mods/help.rs b/src/mods/help.rs index f6fb885..b43021a 100644 --- a/src/mods/help.rs +++ b/src/mods/help.rs @@ -10,7 +10,9 @@ ame -Syu(n) / upg - upgrade all packages to latest version ame -Ss / sea - search for a package ame -Sa / aursea - search for a package in the aur ame -Sr / repsea - search for a package in the repos -ame -v / ver - contributors and version info"); +ame -v / ver - contributors and version info + +ame - passes said flags to be processed by pacman"); println!(""); err_rec(format!("Appending 'n' where (n) is present passes '--noconfirm' to pacman. Use at your own risk.")); println!(""); diff --git a/src/mods/ver.rs b/src/mods/ver.rs index dad46c8..757acfd 100644 --- a/src/mods/ver.rs +++ b/src/mods/ver.rs @@ -3,7 +3,7 @@ use ansi_term::Colour; pub fn ver() { println!(""); - inf(format!("ame - v2.1.2")); + inf(format!("ame - v2.2.0")); println!(""); inf(format!("Contributors:")); println!("- axtlos ");