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