carddb_pack/
carddb_pack.rs1use std::env;
2use std::fs;
3use std::path::PathBuf;
4
5use weiss_core::db::{CardDb, CardStatic};
6
7fn main() -> anyhow::Result<()> {
8 let args: Vec<String> = env::args().collect();
9 if args.len() < 3 {
10 eprintln!("Usage: carddb_pack <input_json> <output_wsdb>");
11 std::process::exit(1);
12 }
13 let input = PathBuf::from(&args[1]);
14 let output = PathBuf::from(&args[2]);
15 let bytes = fs::read(&input)?;
16
17 let db = match serde_json::from_slice::<CardDb>(&bytes) {
18 Ok(db) => CardDb::new(db.cards)?,
19 Err(_) => {
20 let cards: Vec<CardStatic> = serde_json::from_slice(&bytes)?;
21 CardDb::new(cards)?
22 }
23 };
24
25 let out = db.to_bytes_with_header()?;
26 fs::write(output, out)?;
27 Ok(())
28}