added config changes, view comments for details

i18n
axtlos 3 years ago
parent 8c26afa026
commit 9e565eaffd

@ -0,0 +1,13 @@
cache = "/home/user/.cache/ame"
[backends]
pacman = true
flatpak = false
snap = false
aur = true
[pacman]
noconfirm = true
[aur]
clone_path = "/home/user/.cache/ame"

@ -1,6 +1,8 @@
mod mods;
use toml;
use serde;
use std::fs::File;
use std::io::prelude::*;
use mods::{clearcache::clearcache, clone::clone, help::help, install::install, search::{a_search, r_search}, uninstall::uninstall, upgrade::upgrade, flatpak::flatpak, snap::snap};
use std::{env, process::exit, process::Command};
@ -32,22 +34,11 @@ struct AUR {
fn main() {
let args: Vec<String> = env::args().collect();
let configfile: General = toml::from_str(r#"
cache = "/home/user/.cache/ame"
[backends]
pacman = true
flatpak = true
snap = false
aur = true
[pacman]
noconfirm = false
[aur]
clone_path = "/home/user/.cache/ame"
"#).unwrap();
let mut file = File::open("config.toml").expect("Unable to open the Config file");
let mut config = String::new();
file.read_to_string(&mut config).expect("Unable to read the Config file");
println!("{}", config);
let configfile: General = toml::from_str(&config).unwrap();
if args.len() <= 1 {
help();
@ -59,7 +50,8 @@ fn main() {
if configfile.backends.pacman.unwrap() == true {
let out = Command::new("pacman").arg("-Ss").arg(&arg).status().unwrap();
if out.success() {
install(&arg);
let configoption_noconfirm = configfile.pacman.noconfirm.unwrap();
install(configoption_noconfirm, &arg);
} else {
if configfile.backends.aur.unwrap() == true {
clone(&arg);
@ -79,10 +71,12 @@ fn main() {
}
} else if oper == "-R" {
for arg in env::args().skip(2) {
uninstall(&arg);
let configoption_noconfirm = configfile.pacman.noconfirm.unwrap();
uninstall(configoption_noconfirm, &arg);
}
} else if oper == "-Syu" {
upgrade();
let configoption_noconfirm = configfile.pacman.noconfirm.unwrap();
upgrade(configoption_noconfirm);
} else if oper == "-Ss" {
for arg in env::args().skip(2) {
r_search(&arg);

@ -1,6 +1,11 @@
use runas::Command;
pub fn install(pkg: &str) {
pub fn install(noconfirm: bool, pkg: &str) {
println!("{}",noconfirm);
let errstr = format!("Oops.. Something went wrong!");
Command::new("pacman").arg("-S").arg(&pkg).status().expect(&errstr);
if (noconfirm == false) {
Command::new("pacman").arg("-S").arg(&pkg).status().expect(&errstr);
} else {
Command::new("pacman").arg("-S").arg("--noconfirm").arg(&pkg).status().expect(&errstr);
}
}

@ -1,12 +1,11 @@
use std::process::Command;
use runas::Command;
pub fn uninstall(pkg: &str) {
pub fn uninstall(noconfirm: bool, pkg: &str) {
let errstr = format!("Could not remove package {}", pkg);
Command::new("sudo")
.arg("pacman")
.arg("-R")
.arg("--noconfirm")
.arg(&pkg)
.status()
.expect(&errstr);
if (noconfirm == false) {
Command::new("pacman").arg("-R").arg(&pkg).status().expect(&errstr);
} else {
Command::new("pacman").arg("-R").arg("--noconfirm").arg(&pkg).status().expect(&errstr);
}
}

@ -1,9 +1,17 @@
use std::process::Command;
use runas::Command;
pub fn upgrade() {
pub fn upgrade(noconfirm: bool) {
let errstr = format!("Something happened");
Command::new("pacman")
.arg("-Syu")
.status()
.expect(&errstr);
if (noconfirm == true) {
Command::new("pacman")
.arg("-Syu")
.arg("--noconfirm")
.status()
.expect(&errstr);
} else {
Command::new("pacman")
.arg("-Syu")
.status()
.expect(&errstr);
}
}

Loading…
Cancel
Save