You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amethyst/src/main.rs

75 lines
2.1 KiB
Rust

mod mods;
3 years ago
use mods::{
clearcache::clearcache,
clone::clone,
help::help,
inssort::inssort,
install::install,
search::{a_search, r_search},
strs::err_rec,
strs::err_unrec,
strs::inf,
uninstall::uninstall,
update::update,
upgrade::upgrade,
ver::ver,
xargs::*,
};
3 years ago
use std::{env, process::exit, process::Command};
3 years ago
fn main() {
let args: Vec<String> = env::args().collect();
let mut pkgs: Vec<String> = env::args().skip(2).collect();
3 years ago
if args.len() <= 1 {
help();
exit(1);
}
3 years ago
let oper = &args[1];
let noconfirm: bool = noconf(&args);
argssort(&mut pkgs);
3 years ago
3 years ago
// at some point weve GOT TO rework this into a `match` statement
if oper == "-S" || oper == "-Sn" || oper == "ins" {
inssort(noconfirm, pkgs);
} else if oper == "-R" || oper == "-Rn " || oper == "-Rsn" || oper == "-Rs" || oper == "rm" {
uninstall(noconfirm, pkgs);
} else if oper == "-Syu" || oper == "-Syun" || oper == "upg" {
3 years ago
upgrade(noconfirm);
} else if oper == "-Sy" || oper == "upd" {
update();
} else if oper == "-Ss" || oper == "sea" {
r_search(&args[2]);
a_search(&args[2]);
} else if oper == "-Sa" || oper == "aursea" {
a_search(&args[2]);
} else if oper == "-Sr" || oper == "repsea" {
r_search(&args[2]);
} else if oper == "-Cc" || oper == "clr" {
clearcache();
3 years ago
} else if oper == "-v" || oper == "-V" || oper == "ver" {
ver();
} else if oper == "-h" || oper == "help" {
help();
} else {
let pass = Command::new("pacman")
.args(env::args().skip(1))
.status()
.expect("Something has gone wrong.");
match pass.code() {
3 years ago
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.")),
}
3 years ago
}
}