fix(database): handle errors in config parsin or database creation

Showing the user a backtrace can be pretty confusing, so just printing
a nice error message makes errors easier to understand for end users.

fixes #121
This commit is contained in:
Rasmus Thomsen 2021-09-07 19:41:14 +01:00
parent 0737bc021f
commit 51245d34f1
No known key found for this signature in database
GPG key ID: 1115241518154EA6
2 changed files with 22 additions and 6 deletions

View file

@ -198,6 +198,11 @@ impl Database {
pub async fn load_or_create(config: &Config) -> Result<Arc<TokioRwLock<Self>>> {
Self::check_sled_or_sqlite_db(&config)?;
if !Path::new(&config.database_path).exists() {
std::fs::create_dir_all(&config.database_path)
.map_err(|_| Error::BadConfig("Database folder doesn't exists and couldn't be created (e.g. due to missing permissions). Please create the database folder yourself."))?;
}
let builder = Engine::open(&config)?;
if config.max_request_size < 1024 {