mirror of
https://github.com/chatmail/core.git
synced 2026-05-24 17:26:30 +03:00
imex: do not remove our database if backup cannot be imported
We may still want to try importing another backup into the same database.
This commit is contained in:
13
src/imex.rs
13
src/imex.rs
@@ -19,8 +19,8 @@ use crate::config::Config;
|
|||||||
use crate::contact::ContactId;
|
use crate::contact::ContactId;
|
||||||
use crate::context::Context;
|
use crate::context::Context;
|
||||||
use crate::dc_tools::{
|
use crate::dc_tools::{
|
||||||
dc_create_folder, dc_delete_file, dc_delete_files_in_dir, dc_get_filesuffix_lc,
|
dc_create_folder, dc_delete_file, dc_get_filesuffix_lc, dc_open_file_std, dc_read_file,
|
||||||
dc_open_file_std, dc_read_file, dc_write_file, time, EmailAddress,
|
dc_write_file, time, EmailAddress,
|
||||||
};
|
};
|
||||||
use crate::e2ee;
|
use crate::e2ee;
|
||||||
use crate::events::EventType;
|
use crate::events::EventType;
|
||||||
@@ -95,7 +95,6 @@ pub async fn imex(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
cleanup_aborted_imex(context, what).await;
|
|
||||||
// We are using Anyhow's .context() and to show the inner error, too, we need the {:#}:
|
// We are using Anyhow's .context() and to show the inner error, too, we need the {:#}:
|
||||||
error!(context, "{:#}", err);
|
error!(context, "{:#}", err);
|
||||||
context.emit_event(EventType::ImexProgress(0));
|
context.emit_event(EventType::ImexProgress(0));
|
||||||
@@ -105,7 +104,6 @@ pub async fn imex(
|
|||||||
}
|
}
|
||||||
.race(async {
|
.race(async {
|
||||||
cancel.recv().await.ok();
|
cancel.recv().await.ok();
|
||||||
cleanup_aborted_imex(context, what).await;
|
|
||||||
Err(format_err!("canceled"))
|
Err(format_err!("canceled"))
|
||||||
})
|
})
|
||||||
.await;
|
.await;
|
||||||
@@ -115,13 +113,6 @@ pub async fn imex(
|
|||||||
res
|
res
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn cleanup_aborted_imex(context: &Context, what: ImexMode) {
|
|
||||||
if what == ImexMode::ImportBackup {
|
|
||||||
dc_delete_file(context, context.get_dbfile()).await;
|
|
||||||
dc_delete_files_in_dir(context, context.get_blobdir()).await;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns the filename of the backup found (otherwise an error)
|
/// Returns the filename of the backup found (otherwise an error)
|
||||||
pub async fn has_backup(_context: &Context, dir_name: &Path) -> Result<String> {
|
pub async fn has_backup(_context: &Context, dir_name: &Path) -> Result<String> {
|
||||||
let mut dir_iter = async_std::fs::read_dir(dir_name).await?;
|
let mut dir_iter = async_std::fs::read_dir(dir_name).await?;
|
||||||
|
|||||||
Reference in New Issue
Block a user