diff --git a/Cargo.toml b/Cargo.toml index 4887590..4bad7be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,6 @@ description = "a fast and efficient aur helper." # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -git2 = "*" raur = "3.0.1" runas = "*" ansi_term = "*" diff --git a/src/main.rs b/src/main.rs index 108c519..9293b5a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ mod mods; use mods::{clearcache::{clearcache}, clone::clone, help::help, inssort::{inssort, inssort_from_file}, install::install, purge::{purge, purge_from_file}, search::{a_search, r_search}, strs::err_rec, strs::err_unrec, strs::inf, uninstall::{uninstall, uninstall_from_file}, update::{update}, upgrade::{upgrade}, ver::ver, xargs::*}; -use std::{env, process::exit, process::Command}; +use std::{env, process::exit}; use nix::unistd::Uid; fn main() { @@ -9,7 +9,7 @@ fn main() { err_unrec(format!("Do not run ame as root! this can cause serious damage to your system!")); } - let args: Vec = env::args().collect(); + let args: Vec = env::args().skip(1).collect(); let mut pkgs: Vec = env::args().skip(2).collect(); if args.len() <= 1 { @@ -17,7 +17,7 @@ fn main() { exit(1); } - let oper = &args[1]; + let oper = &args[0]; let noconfirm: bool = noconf(&args); argssort(&mut pkgs); @@ -48,14 +48,14 @@ fn main() { update(); // update } "-Ss" | "sea" => { - r_search(&args[2]); // search for packages in the repository - a_search(&args[2]); // search for packages in the aur + r_search(&args[1]); // search for packages in the repository + a_search(&args[1]); // search for packages in the aur } "-Sa" | "aursea" => { - a_search(&args[2]); // search for packages in the aur + a_search(&args[1]); // search for packages in the aur } "-Sr" | "repsea" => { - r_search(&args[2]); // search for packages in the repository + r_search(&args[1]); // search for packages in the repository } "-Cc" | "clr" => { clearcache(); // clear cache @@ -67,8 +67,8 @@ fn main() { help(); // help } _ => { // if oper is not valid it either passes the args to pacman or prints an error - let pass = Command::new("pacman") - .args(env::args().skip(1)) + let pass = runas::Command::new("pacman") + .args(&args) .status() .expect("Something has gone wrong."); diff --git a/src/mods/clone.rs b/src/mods/clone.rs index 6cb6ba4..c42f945 100644 --- a/src/mods/clone.rs +++ b/src/mods/clone.rs @@ -2,7 +2,6 @@ use crate::{ err_unrec, inf, inssort, mods::database::add_pkg, mods::strs::prompt, mods::strs::sec, mods::strs::succ, mods::purge::purge, }; -use git2::Repository; use moins::Moins; use std::{env, fs, path::Path, process::Command}; @@ -102,12 +101,18 @@ pub fn clone(noconfirm: bool, as_dep: bool, pkg: &str) { // clone a package from inssort(noconfirm, true, package[0].depends.clone()); - let clone = Repository::clone(&url, Path::new(&pkgdir)); - match clone { - Ok(_) => { + let clone = std::process::Command::new("git") + .arg("clone") + .arg(&url) + .arg(&pkgdir) + .status() + .expect("couldnt clone repository"); + match clone.code() { + Some(0) => { inf(format!("Cloning {} into package directory", pkg)); } - Err(_) => err_unrec(format!("Failed cloning {} into package directory", pkg)), + Some(_) => err_unrec(format!("Failed cloning {} into package directory", pkg)), + _ => err_unrec(format!("Failed cloning {} into package directory", pkg)), } if as_dep == false { if noconfirm == false { diff --git a/src/mods/upgrade.rs b/src/mods/upgrade.rs index a5f1662..344285d 100644 --- a/src/mods/upgrade.rs +++ b/src/mods/upgrade.rs @@ -1,7 +1,6 @@ use crate::{ err_rec, err_unrec, inf, inssort, mods::strs::prompt, mods::strs::sec, mods::strs::succ, uninstall, mods::database::get_value, }; -use git2::Repository; use runas::Command; use std::{env, fs, path::Path}; use toml; @@ -160,14 +159,18 @@ pub fn upgrade(noconfirm: bool) { // upgrade all packages inssort(true, true, package[0].depends.clone()); - let clone = Repository::clone(&url, Path::new(&keydir)); - match clone { - Ok(_) => { + let clone = std::process::Command::new("git") + .arg("clone") + .arg(&url) + .arg(&keydir) + .status() + .expect("Couldn't clone repo"); + match clone.code() { + Some(0) => { inf(format!("Cloning {} into package directory", &key)); } - Err(_) => { - err_unrec(format!("Failed cloning {} into package directory", &key)) - } + Some(_) => err_unrec(format!("Failed cloning {} into package directory", &key)), + _ => err_unrec(format!("Failed cloning {} into package directory", &key)), } } @@ -208,4 +211,4 @@ pub fn upgrade(noconfirm: bool) { // upgrade all packages } } } -} +} \ No newline at end of file