diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-10-24 21:04:17 +0200 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-10-24 21:04:17 +0200 |
| commit | 269da6178e51f727a2b80a784e59981a13704df4 (patch) | |
| tree | 0fd4a764530c706ebc32a2e59edc87c09a9e4fc3 /server/book-export/src | |
| parent | e67d2d03f9e2d66a24a6b7561146af589e019891 (diff) | |
| download | hurrycurry-269da6178e51f727a2b80a784e59981a13704df4.tar hurrycurry-269da6178e51f727a2b80a784e59981a13704df4.tar.bz2 hurrycurry-269da6178e51f727a2b80a784e59981a13704df4.tar.zst | |
book export file output option
Diffstat (limited to 'server/book-export/src')
| -rw-r--r-- | server/book-export/src/main.rs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/server/book-export/src/main.rs b/server/book-export/src/main.rs index b2731308..d89aa3d4 100644 --- a/server/book-export/src/main.rs +++ b/server/book-export/src/main.rs @@ -23,7 +23,7 @@ use anyhow::Result; use clap::{Parser, ValueEnum}; use hurrycurry_data::{book::book, index::DataIndex}; use hurrycurry_locale::Locale; -use std::path::PathBuf; +use std::{fs::File, io::Write, path::PathBuf}; #[derive(Parser)] struct Args { @@ -35,6 +35,8 @@ struct Args { format: ExportFormat, #[arg(short, long, default_value = "5star")] map: String, + #[arg(short, long)] + output: Option<PathBuf>, } #[derive(ValueEnum, Clone, Copy)] @@ -52,15 +54,20 @@ fn main() -> Result<()> { let book = book(&data, &serverdata)?; - match args.format { - ExportFormat::Json => { - println!("{}", serde_json::to_string(&book).unwrap()) - } + let output = match args.format { + ExportFormat::Json => serde_json::to_string(&book).unwrap(), ExportFormat::Html => { let mut locale = Locale::load(&args.locale_dir.join(format!("{}.ini", args.locale)))?; locale.merge(Locale::load(&args.locale_dir.join("en.ini"))?); - println!("{}", render_html_book(&data, &book, &locale)); + render_html_book(&data, &book, &locale) } + }; + + if let Some(path) = args.output { + File::create(path)?.write_all(output.as_bytes())?; + } else { + println!("{output}") } + Ok(()) } |