From 5ed7c50a363efb4d0bba9bf68a6f238c83d5c056 Mon Sep 17 00:00:00 2001 From: Rafael Madriz <3alouchi2006@gmail.com> Date: Sun, 5 Sep 2021 15:36:49 +0200 Subject: [PATCH] fixed some config issues, and changed the clone function to respect the config --- ame.toml | 4 ++-- src/main.rs | 13 +++++++------ src/mods/clone.rs | 4 ++-- src/mods/config.rs | 10 ++++------ src/mods/install.rs | 2 +- src/mods/uninstall.rs | 2 +- src/mods/upgrade.rs | 2 +- 7 files changed, 18 insertions(+), 19 deletions(-) diff --git a/ame.toml b/ame.toml index 9d5c0e8..6bf503b 100644 --- a/ame.toml +++ b/ame.toml @@ -1,4 +1,4 @@ -cache = "/home/user/.cache/ame" +cache = "/home/ali/.ame" [backends] pacman = true @@ -10,4 +10,4 @@ aur = true noconfirm = false [aur] -clone_path = "/home/user/.cache/ame" +clone_path = "/home/ali/.ame" diff --git a/src/main.rs b/src/main.rs index fd45d89..b46a462 100644 --- a/src/main.rs +++ b/src/main.rs @@ -34,7 +34,6 @@ fn main() { let args: Vec = env::args().collect(); let mut confile = File::open("/etc/ame.toml").expect("Unable to open the Config file, did you delete ame.toml from /etc/??"); let mut config = String::new(); - let conftostring = fs::read_to_string("/etc/ame.toml").expect("unable to open config file!"); let defaultconfig = format!(r#" cache = "{}/.cache/ame" @@ -50,10 +49,11 @@ fn main() { [aur] clone_path = "{}/.cache/ame" "#, std::env::var("HOME").unwrap(), std::env::var("HOME").unwrap()); - let configfile: General = toml::from_str(&defaultconfig).unwrap(); - if conftostring != "" { + let mut configfile: General = toml::from_str(&defaultconfig).unwrap(); + + if fs::read_to_string("/etc/ame.toml").expect("unable to open config file!") != "" { confile.read_to_string(&mut config).expect("Unable to read the Config file"); - let configfile: General = toml::from_str(&config).unwrap(); + configfile = toml::from_str(&config).unwrap(); } if args.len() <= 1 { @@ -61,6 +61,7 @@ fn main() { exit(1); } let oper = &args[1]; + let clone_path=configfile.aur.clone_path.unwrap(); if oper == "-S" || oper == "ins" || oper == "install" { for arg in env::args().skip(2) { if configfile.backends.pacman.unwrap() == true { @@ -70,7 +71,7 @@ fn main() { install(configoption_noconfirm, &arg); } else { if configfile.backends.aur.unwrap() == true { - clone(&arg); + clone(&arg, &clone_path); } else { println!("ERROR: the package wasn't found in the repos and aur support is disabled"); println!("Please enable aur support if you wish to check if this package exists in the aur"); @@ -78,7 +79,7 @@ fn main() { } } } else if configfile.backends.aur.unwrap() == true { - clone(&arg) + clone(&arg, &clone_path) } else { println!("ERROR: it seems like neither pacman, nor aur support is enabled!"); println!("Please enable either one of those option and try again"); diff --git a/src/mods/clone.rs b/src/mods/clone.rs index d9ac3ba..70a9372 100644 --- a/src/mods/clone.rs +++ b/src/mods/clone.rs @@ -1,8 +1,8 @@ use git2::Repository; use std::{fs, path::Path, process::Command}; -pub fn clone(pkg: &str) { - let cachedir = format!("{}/.cache/ame/{}", std::env::var("HOME").unwrap(), pkg); +pub fn clone(pkg: &str, cachedir: &str) { + print!("{}", cachedir); let error = format!("Couldn't install {}", &pkg); let path = Path::new(&cachedir); let results = raur::search(&pkg).expect(&error); diff --git a/src/mods/config.rs b/src/mods/config.rs index 782b6fe..7ff8b1c 100644 --- a/src/mods/config.rs +++ b/src/mods/config.rs @@ -1,6 +1,6 @@ use toml; use serde; -use std::{fs, fs::File, io::prelude::*, env}; +use std::{fs, fs::File, io::prelude::*}; #[derive(serde::Deserialize)] @@ -32,10 +32,8 @@ struct AUR { pub fn printconfig() { - let args: Vec = env::args().collect(); let mut confile = File::open("/etc/ame.toml").expect("Unable to open the Config file, did you delete ame.toml from /etc/??"); let mut config = String::new(); - let conftostring = fs::read_to_string("/etc/ame.toml").expect("unable to open config file!"); let defaultconfig = format!(r#" cache = "{}/.cache/ame" @@ -51,10 +49,10 @@ pub fn printconfig() { [aur] clone_path = "{}/.cache/ame" "#, std::env::var("HOME").unwrap(), std::env::var("HOME").unwrap()); - let configfile: General = toml::from_str(&defaultconfig).unwrap(); - if conftostring != "" { + let mut configfile: General = toml::from_str(&defaultconfig).unwrap(); + if fs::read_to_string("/etc/ame.toml").expect("unable to open config file!") != "" { confile.read_to_string(&mut config).expect("Unable to read the Config file"); - let configfile: General = toml::from_str(&config).unwrap(); + configfile = toml::from_str(&config).unwrap(); } println!("\ General: diff --git a/src/mods/install.rs b/src/mods/install.rs index 0979de5..7911560 100644 --- a/src/mods/install.rs +++ b/src/mods/install.rs @@ -3,7 +3,7 @@ use runas::Command; pub fn install(noconfirm: bool, pkg: &str) { println!("{}",noconfirm); let errstr = format!("Oops.. Something went wrong!"); - if (noconfirm == false) { + 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); diff --git a/src/mods/uninstall.rs b/src/mods/uninstall.rs index 0a61e33..7d97330 100644 --- a/src/mods/uninstall.rs +++ b/src/mods/uninstall.rs @@ -3,7 +3,7 @@ use runas::Command; pub fn uninstall(noconfirm: bool, pkg: &str) { let errstr = format!("Could not remove package {}", pkg); - if (noconfirm == false) { + 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); diff --git a/src/mods/upgrade.rs b/src/mods/upgrade.rs index 91a6abc..3804b21 100644 --- a/src/mods/upgrade.rs +++ b/src/mods/upgrade.rs @@ -2,7 +2,7 @@ use runas::Command; pub fn upgrade(noconfirm: bool) { let errstr = format!("Something happened"); - if (noconfirm == true) { + if noconfirm == true { Command::new("pacman") .arg("-Syu") .arg("--noconfirm")