From bdbb06d6cf24f49983d1e204cea3eb3f9f98a772 Mon Sep 17 00:00:00 2001 From: axtlos <3alouchi2006@gmail.com> Date: Fri, 8 Oct 2021 23:31:19 +0200 Subject: [PATCH 1/7] added first part of database --- Cargo.toml | 2 ++ main.rs | 80 ++++++++++++++++++++++++++++++++++++++++++++ src/main.rs | 3 ++ src/mods.rs | 1 + src/mods/database.rs | 20 +++++++++++ 5 files changed, 106 insertions(+) create mode 100644 main.rs create mode 100644 src/mods/database.rs diff --git a/Cargo.toml b/Cargo.toml index 9f98560..a07e371 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,3 +15,5 @@ ansi_term = "*" uwuizer = "*" moins = "*" regex = "*" +toml_edit = "*" +toml = "*" diff --git a/main.rs b/main.rs new file mode 100644 index 0000000..84b65d3 --- /dev/null +++ b/main.rs @@ -0,0 +1,80 @@ + +mod mods; +use mods::{clearcache::clearcache, clone::clone, help::help, install::install, inssort::inssort, search::{a_search, r_search}, uninstall::uninstall, upgrade::upgrade, update::update, ver::ver, strs::inf, strs::err_unrec, strs::err_rec, xargs::*, database::addPkg}; +use std::{env, process::exit, process::Command}; + +fn main() { + // let statements + let args: Vec = env::args().collect(); + let mut pkgs: Vec = env::args().skip(2).collect(); + + // args catch + if args.len() <= 1 { + help(); + exit(1); + } + + let oper = &args[1]; + let noconfirm: bool = noconf(&args); + + argssort(&mut pkgs); + + // install + if oper == "-S" || oper == "-Sn" || oper == "ins" { + inssort(noconfirm, pkgs); + + // remove + } else if oper == "-R" || oper == "-Rn " || oper == "-Rsn" || oper == "-Rs" || oper == "rm" { + uninstall(noconfirm, pkgs); + + // upgrade + } else if oper == "-Syu" || oper == "-Syun" || oper == "upg" { + upgrade(noconfirm); + + // update + } else if oper == "-Sy" || oper == "upd" { + update(); + } else if oper == "-db" { + addPkg(pkgs); + // general search + } else if oper == "-Ss" || oper == "sea" { + r_search(&args[2]); + a_search(&args[2]); + + // aur search + } else if oper == "-Sa" || oper == "aursea" { + a_search(&args[2]); + + // repo search + } else if oper == "-Sr" || oper == "repsea" { + r_search(&args[2]); + + // clear cache !! DEBUG ONLY !! DO NOT DO THIS IF YOU DONT KNOW WHAT YOURE DOING !! + } else if oper == "-Cc" || oper == "clr" { + clearcache(); + + // version / contrib + } else if oper == "-v" || oper == "-V" || oper == "ver" { + ver(); + + // help + } else if oper == "-h" || oper == "help" { + help(); + // pacman passthrough + } else { + let pass = Command::new("pacman") + .args(env::args().skip(1)) + .status() + .expect("Something has gone wrong."); + + match pass.code() { + 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.")) + }} + } +} diff --git a/src/main.rs b/src/main.rs index fdcf379..825a15c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,6 +14,7 @@ use mods::{ upgrade::upgrade, ver::ver, xargs::*, + database::addPkg }; use std::{env, process::exit, process::Command}; @@ -41,6 +42,8 @@ fn main() { upgrade(noconfirm); } else if oper == "-Sy" || oper == "upd" { update(); + } else if oper == "-db" { + addPkg(pkgs); } else if oper == "-Ss" || oper == "sea" { r_search(&args[2]); a_search(&args[2]); diff --git a/src/mods.rs b/src/mods.rs index 9581b1f..adff73a 100644 --- a/src/mods.rs +++ b/src/mods.rs @@ -10,3 +10,4 @@ pub mod update; pub mod upgrade; pub mod ver; pub mod xargs; +pub mod database; \ No newline at end of file diff --git a/src/mods/database.rs b/src/mods/database.rs new file mode 100644 index 0000000..6d421c2 --- /dev/null +++ b/src/mods/database.rs @@ -0,0 +1,20 @@ +use toml_edit::{Document, value}; +use std::io::{Read, Write}; + + +pub fn addPkg(pkgs: Vec) { + let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); + let database = std::fs::read_to_string(&file).expect("cant open new configuration"); + + let mut dbParsed = database.parse::().expect("invalid Database"); + for i in pkgs { + let results = raur::search(&i); + for res in &results { + for r in res { + dbParsed[&i]["name"] = value(&r.name); + dbParsed[&i]["version"] = value(&r.version); + } + } + } + print!("{}",dbParsed); +} \ No newline at end of file From 6fd0a468fa705dc38cdc03ae915b8a5e6909e119 Mon Sep 17 00:00:00 2001 From: axtlos <3alouchi2006@gmail.com> Date: Sat, 9 Oct 2021 22:21:14 +0200 Subject: [PATCH 2/7] is now able to remove packages from the database --- Cargo.toml | 1 + src/main.rs | 4 +++- src/mods/database.rs | 29 +++++++++++++++++++++++++---- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index a07e371..33f6122 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,3 +17,4 @@ moins = "*" regex = "*" toml_edit = "*" toml = "*" +bytes = "*" diff --git a/src/main.rs b/src/main.rs index 825a15c..f39da20 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,7 +14,7 @@ use mods::{ upgrade::upgrade, ver::ver, xargs::*, - database::addPkg + database::{addPkg, remPkg} }; use std::{env, process::exit, process::Command}; @@ -44,6 +44,8 @@ fn main() { update(); } else if oper == "-db" { addPkg(pkgs); + } else if oper == "-remdb" { + remPkg(pkgs); } else if oper == "-Ss" || oper == "sea" { r_search(&args[2]); a_search(&args[2]); diff --git a/src/mods/database.rs b/src/mods/database.rs index 6d421c2..db84b6f 100644 --- a/src/mods/database.rs +++ b/src/mods/database.rs @@ -1,13 +1,32 @@ +use regex::bytes; use toml_edit::{Document, value}; -use std::io::{Read, Write}; +use std::io::{Read, Write, Error}; +use std::fs::File; +pub fn remPkg(pkgs: Vec) { + let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); + let mut database = std::fs::read_to_string(&file).expect("cant open database"); -pub fn addPkg(pkgs: Vec) { + let mut updateDatabase = database; + for i in pkgs { + let results = raur::search(&i); + for res in &results { + let databaseEntry = format!("{} = {{ name = \"{}\", version = \"{}\"}}\n",&i, &res[0].name, &res[0].version); + updateDatabase = format!("{}",updateDatabase.replace(&databaseEntry, "")); + } + } + let fileAsPath = File::create(std::path::Path::new(&file)).unwrap(); + write!(&fileAsPath, "{}", updateDatabase); + +} + +pub fn addPkg(pkgs: Vec) -> Result<(), Error> { let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); - let database = std::fs::read_to_string(&file).expect("cant open new configuration"); + let database = std::fs::read_to_string(&file).expect("cant open database"); + let mut fileAsPath = File::create(std::path::Path::new(&file))?; let mut dbParsed = database.parse::().expect("invalid Database"); - for i in pkgs { + for i in pkgs { let results = raur::search(&i); for res in &results { for r in res { @@ -17,4 +36,6 @@ pub fn addPkg(pkgs: Vec) { } } print!("{}",dbParsed); + fileAsPath.write_all(format!("{}",dbParsed).as_bytes()).unwrap(); + Ok(()) } \ No newline at end of file From 35be71e43b992745ee0589166091e43ff6967d2e Mon Sep 17 00:00:00 2001 From: axtlos <3alouchi2006@gmail.com> Date: Sun, 10 Oct 2021 21:57:01 +0200 Subject: [PATCH 3/7] uhhhh, more database advancements, i guess --- Cargo.toml | 2 +- src/main.rs | 4 ---- src/mods/clone.rs | 4 +++- src/mods/database.rs | 25 +++++++++++++++---------- src/mods/uninstall.rs | 18 +++++++++++------- src/mods/upgrade.rs | 36 ++++++++++++++++++++++++++++++++++-- 6 files changed, 64 insertions(+), 25 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 33f6122..c460000 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,4 +17,4 @@ moins = "*" regex = "*" toml_edit = "*" toml = "*" -bytes = "*" +bytes = "*" \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index f39da20..9d71995 100644 --- a/src/main.rs +++ b/src/main.rs @@ -42,10 +42,6 @@ fn main() { upgrade(noconfirm); } else if oper == "-Sy" || oper == "upd" { update(); - } else if oper == "-db" { - addPkg(pkgs); - } else if oper == "-remdb" { - remPkg(pkgs); } else if oper == "-Ss" || oper == "sea" { r_search(&args[2]); a_search(&args[2]); diff --git a/src/mods/clone.rs b/src/mods/clone.rs index 9ad657c..0d64410 100644 --- a/src/mods/clone.rs +++ b/src/mods/clone.rs @@ -1,6 +1,6 @@ use crate::{ err_unrec, inf, inssort, mods::strs::prompt, mods::strs::sec, mods::strs::succ, - mods::uninstall::uninstall, + mods::uninstall::uninstall, mods::database::addPkg }; use git2::Repository; use moins::Moins; @@ -102,6 +102,7 @@ pub fn clone(noconfirm: bool, pkg: &str) { match install_result { Ok(_) => { uninstall_make_depend(pkg); + addPkg(false, pkg); } Err(_) => { err_unrec(format!("Couldn't install {}", pkg)); @@ -117,6 +118,7 @@ pub fn clone(noconfirm: bool, pkg: &str) { match install_result.code() { Some(0) => { uninstall_make_depend(pkg); + addPkg(false, pkg); } Some(_) => { err_unrec(format!("Couldn't install {}", pkg)); diff --git a/src/mods/database.rs b/src/mods/database.rs index db84b6f..8ff4927 100644 --- a/src/mods/database.rs +++ b/src/mods/database.rs @@ -3,16 +3,18 @@ use toml_edit::{Document, value}; use std::io::{Read, Write, Error}; use std::fs::File; -pub fn remPkg(pkgs: Vec) { +pub fn remPkg(pkgs: &Vec) { let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); let mut database = std::fs::read_to_string(&file).expect("cant open database"); let mut updateDatabase = database; for i in pkgs { - let results = raur::search(&i); - for res in &results { - let databaseEntry = format!("{} = {{ name = \"{}\", version = \"{}\"}}\n",&i, &res[0].name, &res[0].version); - updateDatabase = format!("{}",updateDatabase.replace(&databaseEntry, "")); + if updateDatabase.contains(i) { + let results = raur::search(&i); + for res in &results { + let databaseEntry = format!("{} = {{ name = \"{}\", version = \"{}\"}}\n",&res[0].name, &res[0].name, &res[0].version); + updateDatabase = format!("{}",updateDatabase.replace(&databaseEntry, "")); + } } } let fileAsPath = File::create(std::path::Path::new(&file)).unwrap(); @@ -20,20 +22,23 @@ pub fn remPkg(pkgs: Vec) { } -pub fn addPkg(pkgs: Vec) -> Result<(), Error> { +pub fn addPkg(fromRepo: bool, pkg: &str) -> Result<(), Error> { let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); let database = std::fs::read_to_string(&file).expect("cant open database"); let mut fileAsPath = File::create(std::path::Path::new(&file))?; let mut dbParsed = database.parse::().expect("invalid Database"); - for i in pkgs { - let results = raur::search(&i); + if fromRepo == false { + let results = raur::search(&pkg); for res in &results { for r in res { - dbParsed[&i]["name"] = value(&r.name); - dbParsed[&i]["version"] = value(&r.version); + dbParsed[&r.name]["name"] = value(&r.name); + dbParsed[&r.name]["version"] = value(&r.version); } } + } else { + dbParsed[&pkg]["name"] = value(pkg); + dbParsed[&pkg]["version"] = value(pkg); } print!("{}",dbParsed); fileAsPath.write_all(format!("{}",dbParsed).as_bytes()).unwrap(); diff --git a/src/mods/uninstall.rs b/src/mods/uninstall.rs index 809dc15..b672b55 100644 --- a/src/mods/uninstall.rs +++ b/src/mods/uninstall.rs @@ -1,4 +1,4 @@ -use crate::mods::strs::{err_rec, err_unrec, sec, succ}; +use crate::mods::{strs::{err_rec, err_unrec, sec, succ}, database::remPkg}; use runas::Command; use std::{fs, path::Path}; @@ -15,10 +15,12 @@ pub fn uninstall(noconfirm: bool, pkgs: Vec) { .status() .expect("Couldn't call pacman"); match result.code() { - Some(0) => succ(format!( + Some(0) => { + succ(format!( "Succesfully uninstalled packages: {}", - &pkgs.join(" ") - )), + &pkgs.join(" "))); + remPkg(&pkgs); + }, Some(_) => err_rec(format!("Couldn't uninstall packages: {}", &pkgs.join(" "))), None => err_rec(format!("Couldn't uninstall packages: {}", &pkgs.join(" "))), }; @@ -29,10 +31,12 @@ pub fn uninstall(noconfirm: bool, pkgs: Vec) { .status() .expect("Couldn't call pacman"); match result.code() { - Some(0) => succ(format!( + Some(0) => { + succ(format!( "Succesfully uninstalled packages: {}", - &pkgs.join(" ") - )), + &pkgs.join(" "))); + remPkg(&pkgs); + }, Some(_) => err_rec(format!("Couldn't uninstall packages: {}", &pkgs.join(" "))), None => err_rec(format!("Couldn't uninstall packages: {}", &pkgs.join(" "))), }; diff --git a/src/mods/upgrade.rs b/src/mods/upgrade.rs index 168dcbd..bddc9c7 100644 --- a/src/mods/upgrade.rs +++ b/src/mods/upgrade.rs @@ -1,11 +1,16 @@ use crate::mods::strs::{err_unrec, inf, sec, succ}; use runas::Command; use std::{env, fs}; +use toml; pub fn upgrade(noconfirm: bool) { let homepath = std::env::var("HOME").unwrap(); let cachedir = format!("/{}/.cache/ame/", homepath); let cache_exists = std::path::Path::new(&format!("/{}/.cache/ame/", homepath)).is_dir(); + let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); + let database = std::fs::read_to_string(&file).expect("cant open database"); + let mut dbParsed = database.parse::().expect("invalid Database"); + if cache_exists == false { let cachecreate = fs::create_dir_all(&cachedir); match cachecreate { @@ -40,7 +45,34 @@ pub fn upgrade(noconfirm: bool) { }; } - for file in std::fs::read_dir(&cachedir).unwrap() { + println!("{:?}", dbParsed); + for entry in dbParsed.as_table() { + for (key, value) in &*entry { + //println!("{} / {}", key, value); + for (option, entry) in { + println!("{} / {}", option, entry); + } + //if key.contains("name") { + /* println!("{}",value); + let results = raur::search(format!("{}",entry["paru"])); + println!("{}",format!("{}",entry)); + let mut test = value.to_string().replace("\"", ""); + test = test.replace("version", "").replace("name",""); + test = test.replace("=", ""); + println!("{}",test.replace(" ",""));*/ + //let results = raur::search(format!("{}",value)); + //for res in results { + // println!("{}",&res[0].name); + //} + /*} else if key.contains("version") { + if value.as_integer() == lVersion { + println!("upgrading"); + } + }*/ + } + } + + /*for file in std::fs::read_dir(&cachedir).unwrap() { let dir = &file.unwrap().path(); let output = std::process::Command::new("git") .arg("pull") @@ -82,5 +114,5 @@ pub fn upgrade(noconfirm: bool) { None => err_unrec(format!("Couldn't install new AUR package version")), }; } - } + }*/ } From d442a542a7a9e715642b6f168d1ae813e2cb8bad Mon Sep 17 00:00:00 2001 From: axtlos <3alouchi2006@gmail.com> Date: Sun, 10 Oct 2021 23:49:02 +0200 Subject: [PATCH 4/7] fix the testing messup i did --- Cargo.toml | 3 --- src/main.rs | 1 - src/mods.rs | 1 - src/mods/clone.rs | 4 +--- src/mods/uninstall.rs | 18 +++++++----------- src/mods/upgrade.rs | 36 ++---------------------------------- 6 files changed, 10 insertions(+), 53 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c460000..9f98560 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,3 @@ ansi_term = "*" uwuizer = "*" moins = "*" regex = "*" -toml_edit = "*" -toml = "*" -bytes = "*" \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 9d71995..fdcf379 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,7 +14,6 @@ use mods::{ upgrade::upgrade, ver::ver, xargs::*, - database::{addPkg, remPkg} }; use std::{env, process::exit, process::Command}; diff --git a/src/mods.rs b/src/mods.rs index adff73a..9581b1f 100644 --- a/src/mods.rs +++ b/src/mods.rs @@ -10,4 +10,3 @@ pub mod update; pub mod upgrade; pub mod ver; pub mod xargs; -pub mod database; \ No newline at end of file diff --git a/src/mods/clone.rs b/src/mods/clone.rs index 0d64410..9ad657c 100644 --- a/src/mods/clone.rs +++ b/src/mods/clone.rs @@ -1,6 +1,6 @@ use crate::{ err_unrec, inf, inssort, mods::strs::prompt, mods::strs::sec, mods::strs::succ, - mods::uninstall::uninstall, mods::database::addPkg + mods::uninstall::uninstall, }; use git2::Repository; use moins::Moins; @@ -102,7 +102,6 @@ pub fn clone(noconfirm: bool, pkg: &str) { match install_result { Ok(_) => { uninstall_make_depend(pkg); - addPkg(false, pkg); } Err(_) => { err_unrec(format!("Couldn't install {}", pkg)); @@ -118,7 +117,6 @@ pub fn clone(noconfirm: bool, pkg: &str) { match install_result.code() { Some(0) => { uninstall_make_depend(pkg); - addPkg(false, pkg); } Some(_) => { err_unrec(format!("Couldn't install {}", pkg)); diff --git a/src/mods/uninstall.rs b/src/mods/uninstall.rs index b672b55..809dc15 100644 --- a/src/mods/uninstall.rs +++ b/src/mods/uninstall.rs @@ -1,4 +1,4 @@ -use crate::mods::{strs::{err_rec, err_unrec, sec, succ}, database::remPkg}; +use crate::mods::strs::{err_rec, err_unrec, sec, succ}; use runas::Command; use std::{fs, path::Path}; @@ -15,12 +15,10 @@ pub fn uninstall(noconfirm: bool, pkgs: Vec) { .status() .expect("Couldn't call pacman"); match result.code() { - Some(0) => { - succ(format!( + Some(0) => succ(format!( "Succesfully uninstalled packages: {}", - &pkgs.join(" "))); - remPkg(&pkgs); - }, + &pkgs.join(" ") + )), Some(_) => err_rec(format!("Couldn't uninstall packages: {}", &pkgs.join(" "))), None => err_rec(format!("Couldn't uninstall packages: {}", &pkgs.join(" "))), }; @@ -31,12 +29,10 @@ pub fn uninstall(noconfirm: bool, pkgs: Vec) { .status() .expect("Couldn't call pacman"); match result.code() { - Some(0) => { - succ(format!( + Some(0) => succ(format!( "Succesfully uninstalled packages: {}", - &pkgs.join(" "))); - remPkg(&pkgs); - }, + &pkgs.join(" ") + )), Some(_) => err_rec(format!("Couldn't uninstall packages: {}", &pkgs.join(" "))), None => err_rec(format!("Couldn't uninstall packages: {}", &pkgs.join(" "))), }; diff --git a/src/mods/upgrade.rs b/src/mods/upgrade.rs index bddc9c7..168dcbd 100644 --- a/src/mods/upgrade.rs +++ b/src/mods/upgrade.rs @@ -1,16 +1,11 @@ use crate::mods::strs::{err_unrec, inf, sec, succ}; use runas::Command; use std::{env, fs}; -use toml; pub fn upgrade(noconfirm: bool) { let homepath = std::env::var("HOME").unwrap(); let cachedir = format!("/{}/.cache/ame/", homepath); let cache_exists = std::path::Path::new(&format!("/{}/.cache/ame/", homepath)).is_dir(); - let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); - let database = std::fs::read_to_string(&file).expect("cant open database"); - let mut dbParsed = database.parse::().expect("invalid Database"); - if cache_exists == false { let cachecreate = fs::create_dir_all(&cachedir); match cachecreate { @@ -45,34 +40,7 @@ pub fn upgrade(noconfirm: bool) { }; } - println!("{:?}", dbParsed); - for entry in dbParsed.as_table() { - for (key, value) in &*entry { - //println!("{} / {}", key, value); - for (option, entry) in { - println!("{} / {}", option, entry); - } - //if key.contains("name") { - /* println!("{}",value); - let results = raur::search(format!("{}",entry["paru"])); - println!("{}",format!("{}",entry)); - let mut test = value.to_string().replace("\"", ""); - test = test.replace("version", "").replace("name",""); - test = test.replace("=", ""); - println!("{}",test.replace(" ",""));*/ - //let results = raur::search(format!("{}",value)); - //for res in results { - // println!("{}",&res[0].name); - //} - /*} else if key.contains("version") { - if value.as_integer() == lVersion { - println!("upgrading"); - } - }*/ - } - } - - /*for file in std::fs::read_dir(&cachedir).unwrap() { + for file in std::fs::read_dir(&cachedir).unwrap() { let dir = &file.unwrap().path(); let output = std::process::Command::new("git") .arg("pull") @@ -114,5 +82,5 @@ pub fn upgrade(noconfirm: bool) { None => err_unrec(format!("Couldn't install new AUR package version")), }; } - }*/ + } } From 07d0aa7fa37d30133aca8dc135f818e44895039a Mon Sep 17 00:00:00 2001 From: axtlos <3alouchi2006@gmail.com> Date: Sun, 10 Oct 2021 23:50:28 +0200 Subject: [PATCH 5/7] 2 --- main.rs | 80 -------------------------------------------- src/mods/database.rs | 46 ------------------------- 2 files changed, 126 deletions(-) delete mode 100644 main.rs delete mode 100644 src/mods/database.rs diff --git a/main.rs b/main.rs deleted file mode 100644 index 84b65d3..0000000 --- a/main.rs +++ /dev/null @@ -1,80 +0,0 @@ - -mod mods; -use mods::{clearcache::clearcache, clone::clone, help::help, install::install, inssort::inssort, search::{a_search, r_search}, uninstall::uninstall, upgrade::upgrade, update::update, ver::ver, strs::inf, strs::err_unrec, strs::err_rec, xargs::*, database::addPkg}; -use std::{env, process::exit, process::Command}; - -fn main() { - // let statements - let args: Vec = env::args().collect(); - let mut pkgs: Vec = env::args().skip(2).collect(); - - // args catch - if args.len() <= 1 { - help(); - exit(1); - } - - let oper = &args[1]; - let noconfirm: bool = noconf(&args); - - argssort(&mut pkgs); - - // install - if oper == "-S" || oper == "-Sn" || oper == "ins" { - inssort(noconfirm, pkgs); - - // remove - } else if oper == "-R" || oper == "-Rn " || oper == "-Rsn" || oper == "-Rs" || oper == "rm" { - uninstall(noconfirm, pkgs); - - // upgrade - } else if oper == "-Syu" || oper == "-Syun" || oper == "upg" { - upgrade(noconfirm); - - // update - } else if oper == "-Sy" || oper == "upd" { - update(); - } else if oper == "-db" { - addPkg(pkgs); - // general search - } else if oper == "-Ss" || oper == "sea" { - r_search(&args[2]); - a_search(&args[2]); - - // aur search - } else if oper == "-Sa" || oper == "aursea" { - a_search(&args[2]); - - // repo search - } else if oper == "-Sr" || oper == "repsea" { - r_search(&args[2]); - - // clear cache !! DEBUG ONLY !! DO NOT DO THIS IF YOU DONT KNOW WHAT YOURE DOING !! - } else if oper == "-Cc" || oper == "clr" { - clearcache(); - - // version / contrib - } else if oper == "-v" || oper == "-V" || oper == "ver" { - ver(); - - // help - } else if oper == "-h" || oper == "help" { - help(); - // pacman passthrough - } else { - let pass = Command::new("pacman") - .args(env::args().skip(1)) - .status() - .expect("Something has gone wrong."); - - match pass.code() { - 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.")) - }} - } -} diff --git a/src/mods/database.rs b/src/mods/database.rs deleted file mode 100644 index 8ff4927..0000000 --- a/src/mods/database.rs +++ /dev/null @@ -1,46 +0,0 @@ -use regex::bytes; -use toml_edit::{Document, value}; -use std::io::{Read, Write, Error}; -use std::fs::File; - -pub fn remPkg(pkgs: &Vec) { - let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); - let mut database = std::fs::read_to_string(&file).expect("cant open database"); - - let mut updateDatabase = database; - for i in pkgs { - if updateDatabase.contains(i) { - let results = raur::search(&i); - for res in &results { - let databaseEntry = format!("{} = {{ name = \"{}\", version = \"{}\"}}\n",&res[0].name, &res[0].name, &res[0].version); - updateDatabase = format!("{}",updateDatabase.replace(&databaseEntry, "")); - } - } - } - let fileAsPath = File::create(std::path::Path::new(&file)).unwrap(); - write!(&fileAsPath, "{}", updateDatabase); - -} - -pub fn addPkg(fromRepo: bool, pkg: &str) -> Result<(), Error> { - let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); - let database = std::fs::read_to_string(&file).expect("cant open database"); - let mut fileAsPath = File::create(std::path::Path::new(&file))?; - - let mut dbParsed = database.parse::().expect("invalid Database"); - if fromRepo == false { - let results = raur::search(&pkg); - for res in &results { - for r in res { - dbParsed[&r.name]["name"] = value(&r.name); - dbParsed[&r.name]["version"] = value(&r.version); - } - } - } else { - dbParsed[&pkg]["name"] = value(pkg); - dbParsed[&pkg]["version"] = value(pkg); - } - print!("{}",dbParsed); - fileAsPath.write_all(format!("{}",dbParsed).as_bytes()).unwrap(); - Ok(()) -} \ No newline at end of file From 6f06a6c55ea84e137fede0862492e8e05e47a032 Mon Sep 17 00:00:00 2001 From: axtlos Date: Mon, 11 Oct 2021 19:56:03 +0000 Subject: [PATCH 6/7] fix src link in -v output --- src/mods/ver.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mods/ver.rs b/src/mods/ver.rs index 4a80061..525245a 100644 --- a/src/mods/ver.rs +++ b/src/mods/ver.rs @@ -20,7 +20,7 @@ pub fn ver() { "{}", Colour::Purple .bold() - .paint("https://github.com/crystal-linux/ame") + .paint("https://git.getcryst.al/crystal-linux/ame") ); println!(""); } From 0a672626af3ff2cab2d3372e4660cca5d3a8b7ce Mon Sep 17 00:00:00 2001 From: axtlos Date: Mon, 11 Oct 2021 19:56:20 +0000 Subject: [PATCH 7/7] fix src link again --- src/mods/ver.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mods/ver.rs b/src/mods/ver.rs index 525245a..4b38850 100644 --- a/src/mods/ver.rs +++ b/src/mods/ver.rs @@ -20,7 +20,7 @@ pub fn ver() { "{}", Colour::Purple .bold() - .paint("https://git.getcryst.al/crystal-linux/ame") + .paint("https://git.getcryst.al/crystal/ame") ); println!(""); }