diff --git a/examples/repl/cmdline.rs b/examples/repl/cmdline.rs index cf99840ef..1d3d1edbb 100644 --- a/examples/repl/cmdline.rs +++ b/examples/repl/cmdline.rs @@ -336,6 +336,8 @@ pub async fn cmdline(context: Context, line: &str, chat_id: &mut ChatId) -> Resu has-backup\n\ export-backup\n\ import-backup \n\ + send-backup\n\ + receive-backup \n\ export-keys\n\ import-keys\n\ export-setup\n\ @@ -486,6 +488,22 @@ pub async fn cmdline(context: Context, line: &str, chat_id: &mut ChatId) -> Resu ) .await?; } + "send-backup" => { + let tdir = tempfile::TempDir::new()?; + let dir = tdir.path(); + let provider = BackupProvider::prepare(&context, dir).await?; + let qr = provider.qr(); + let rendered = deltachat::qr_code_generator::generate_backup_qr(&context, qr).await?; + let file = dir.join("qr.svg"); + tokio::fs::write(&file, rendered).await?; + println!("The QR code is at: {}", file.display()); + provider.join().await?; + } + "receive-backup" => { + ensure!(!arg1.is_empty(), "Argument is missing."); + let qr = check_qr(&context, arg1).await?; + deltachat::imex::get_backup(&context, qr).await?; + } "export-keys" => { let dir = dirs::home_dir().unwrap_or_default(); imex(&context, ImexMode::ExportSelfKeys, dir.as_ref(), None).await?; diff --git a/examples/repl/main.rs b/examples/repl/main.rs index 3798b9364..697cd1368 100644 --- a/examples/repl/main.rs +++ b/examples/repl/main.rs @@ -152,13 +152,15 @@ impl Completer for DcHelper { } } -const IMEX_COMMANDS: [&str; 12] = [ +const IMEX_COMMANDS: [&str; 14] = [ "initiate-key-transfer", "get-setupcodebegin", "continue-key-transfer", "has-backup", "export-backup", "import-backup", + "send-backup", + "receive-backup", "export-keys", "import-keys", "export-setup",