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

76 lines
2.1 KiB
Rust

mod mods;
3 years ago
use mods::{clearcache::clearcache, clone::clone, help::help, install::install, search::{a_search, r_search}, uninstall::uninstall, upgrade::upgrade, ver::ver};
use std::{env, process::exit, process::Command};
3 years ago
fn main() {
3 years ago
// let statements
3 years ago
let args: Vec<String> = env::args().collect();
3 years ago
let homepath = std::env::var("HOME").unwrap();
let cache_path = format!("/{}/.cache/ame/", homepath);
3 years ago
// args catch
if args.len() <= 1 {
help();
exit(1);
}
3 years ago
let oper = &args[1];
3 years ago
// install
if oper == "-S" || oper == "ins" || oper == "install" {
3 years ago
for arg in env::args().skip(2) {
3 years ago
let out = Command::new("pacman")
.arg("-Ss")
.arg(&arg)
.arg(" > /dev/null && return ${PIPESTATUS}")
.status()
.unwrap();
if out.success() {
install(&arg);
} else {
3 years ago
clone(&arg);
}
3 years ago
}
// remove
} else if oper == "-R" || oper == "-Rs" || oper=="rem" || oper=="remove" {
3 years ago
for arg in env::args().skip(2) {
3 years ago
uninstall(&arg);
3 years ago
}
3 years ago
// upgrade
} else if oper == "-Syu" || oper=="upg" || oper=="upgrade" {
3 years ago
upgrade(&cache_path);
} else if oper == "-Ss" || oper=="sea" || oper=="search" {
for arg in env::args().skip(2) {
r_search(&arg);
a_search(&arg);
}
3 years ago
// aur search
} else if oper == "-Sa" || oper=="aursea" || oper=="aursearch" {
for arg in env::args().skip(2) {
a_search(&arg);
}
3 years ago
// repo search
} else if oper == "-Sr" || oper=="repsea" || oper=="reposearch" {
for arg in env::args().skip(2) {
r_search(&arg);
}
3 years ago
// clear cache
} else if oper == "-Cc" || oper=="clr" || oper=="clear-cache" {
clearcache();
3 years ago
// version / contrib
} else if oper == "-v" || oper == "-V" || oper == "ver" {
ver();
// help
} else {
help();
exit(0);
3 years ago
}
}