From 6f993a2a113ddfb2a1ac9b9de476090848167624 Mon Sep 17 00:00:00 2001 From: axtloss <3alouchi2006@gmail.com> Date: Thu, 14 Oct 2021 21:36:01 +0200 Subject: [PATCH] doesnt panic when databse doesnt exist, just creates a new one --- src/mods/database.rs | 10 +++++++++- src/mods/upgrade.rs | 12 ++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/mods/database.rs b/src/mods/database.rs index 6e78032..17af5d0 100644 --- a/src/mods/database.rs +++ b/src/mods/database.rs @@ -2,10 +2,18 @@ use crate::{err_unrec, inf}; use std::fs::File; use std::io::{Error, Write}; use toml_edit::{value, Document}; +use crate::mods::strs::{err_rec}; pub fn rem_pkg(pkgs: &Vec) { let file = format!("{}/.local/ame/aurPkgs.db", std::env::var("HOME").unwrap()); - let database = std::fs::read_to_string(&file).expect("Can't Open Database"); + let database = String::new(); + if std::path::Path::new(&file).exists() { + let database = std::fs::read_to_string(&file).expect("Can't Open Database"); + } else { + err_rec(String::from("Database wasn't found, creating new one")); + let dbFile = File::create(&file); + let database = String::new(); + } let mut update_database = database; for i in pkgs { diff --git a/src/mods/upgrade.rs b/src/mods/upgrade.rs index 9806626..9f9af8a 100644 --- a/src/mods/upgrade.rs +++ b/src/mods/upgrade.rs @@ -1,6 +1,6 @@ //use crate::mods::strs::{err_unrec, inf, sec, succ}; use crate::{ - err_unrec, inf, inssort, mods::strs::prompt, mods::strs::sec, mods::strs::succ, uninstall, + err_rec, err_unrec, inf, inssort, mods::strs::prompt, mods::strs::sec, mods::strs::succ, uninstall, }; use git2::Repository; use runas::Command; @@ -29,7 +29,15 @@ pub fn upgrade(noconfirm: bool) { 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("Can't open database"); + let database = String::new(); + if std::path::Path::new(&file).exists() { + let database = std::fs::read_to_string(&file).expect("Can't Open Database"); + } else { + fs::create_dir_all(format!("/{}/.local/ame/", homepath)); + err_rec(String::from("Database wasn't found, creating new one")); + let dbFile = std::fs::File::create(&file); + let database = String::new(); + } let db_parsed = database.parse::().expect("Invalid Database"); if cache_exists == false {