added basic config parsing, not fully finished yet, reads config from hardcoded string. added check if flatpak is installed and return with error if not

i18n
Rafael Madriz 3 years ago
parent fe741b862f
commit 92e1098854
No known key found for this signature in database
GPG Key ID: A76CA65098D4FA42

@ -10,4 +10,6 @@ description = "a fast and efficient aur helper."
[dependencies]
git2 = "*"
raur = "2.0.2"
runas = "*"
runas = "*"
toml = "*"
serde = "*"

@ -1,15 +1,58 @@
mod mods;
use toml;
use serde;
use mods::{clearcache::clearcache, clone::clone, help::help, install::install, search::{a_search, r_search}, uninstall::uninstall, upgrade::upgrade, flatpak::flatpak};
use std::{env, process::exit, process::Command};
#[derive(serde::Deserialize)]
struct General {
cache: Option<String>,
backends: Backends,
pacman: Pacman,
aur: AUR,
}
#[derive(serde::Deserialize)]
struct Backends {
pacman: Option<bool>,
flatpak: Option<bool>,
snap: Option<bool>,
aur: Option<bool>,
}
#[derive(serde::Deserialize)]
struct Pacman {
noconfirm: Option<bool>,
}
#[derive(serde::Deserialize)]
struct AUR {
clone_path: Option<String>,
}
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 = false
snap = false
aur = true
[pacman]
noconfirm = false
[aur]
clone_path = "/home/user/.cache/ame"
"#).unwrap();
if args.len() <= 1 {
help();
exit(1);
}
let oper = &args[1];
if oper == "-S" {
for arg in env::args().skip(2) {
@ -42,8 +85,19 @@ fn main() {
} else if oper == "-Cc" {
clearcache();
} else if oper == "-f" {
for arg in env::args().skip(2) {
flatpak(&arg);
if configfile.backends.flatpak.unwrap() == true {
let b = std::path::Path::new("/usr/bin/flatpak").exists();
if b == true {
for arg in env::args().skip(2) {
flatpak(&arg);
}
} else {
println!("ERROR: flatpak not found, please install flatpak and try again!");
println!("If you do have flatpak installed, please open an issue on the ame github repo!");
}
} else {
println!("ERROR: flatpak support is disabled in your ame config!");
println!("Enable flatpak support in your configuration and try again!");
}
} else {
help();

Loading…
Cancel
Save