From 1f1795f11188f63904e383a2f9974e0e75735bf4 Mon Sep 17 00:00:00 2001 From: Joscha Date: Sun, 31 Dec 2023 20:20:28 +0100 Subject: [PATCH] Support domain when exporting room logs --- cove/src/export.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/cove/src/export.rs b/cove/src/export.rs index 545f48b..9d9c60b 100644 --- a/cove/src/export.rs +++ b/cove/src/export.rs @@ -6,7 +6,7 @@ mod text; use std::fs::File; use std::io::{self, BufWriter, Write}; -use crate::vault::{EuphRoomVault, EuphVault}; +use crate::vault::{EuphRoomVault, EuphVault, RoomIdentifier}; #[derive(Debug, Clone, Copy, clap::ValueEnum)] pub enum Format { @@ -43,6 +43,10 @@ pub struct Args { #[arg(long, short)] all: bool, + /// Domain to resolve the room names with. + #[arg(long, short, default_value = "euphoria.leet.nu")] + domain: String, + /// Format of the output file. #[arg(long, short, value_enum, default_value_t = Format::Text)] format: Format, @@ -85,7 +89,12 @@ pub async fn export(vault: &EuphVault, mut args: Args) -> anyhow::Result<()> { } let rooms = if args.all { - let mut rooms = vault.rooms().await?; + let mut rooms = vault + .rooms() + .await? + .into_iter() + .map(|id| id.name) + .collect::>(); rooms.sort_unstable(); rooms } else { @@ -101,14 +110,14 @@ pub async fn export(vault: &EuphVault, mut args: Args) -> anyhow::Result<()> { for room in rooms { if args.out == "-" { eprintln!("Exporting &{room} as {} to stdout", args.format.name()); - let vault = vault.room(room); + let vault = vault.room(RoomIdentifier::new(args.domain.clone(), room)); let mut stdout = BufWriter::new(io::stdout()); export_room(&vault, &mut stdout, args.format).await?; stdout.flush()?; } else { let out = format_out(&args.out, &room, args.format); eprintln!("Exporting &{room} as {} to {out}", args.format.name()); - let vault = vault.room(room); + let vault = vault.room(RoomIdentifier::new(args.domain.clone(), room)); let mut file = BufWriter::new(File::create(out)?); export_room(&vault, &mut file, args.format).await?; file.flush()?;