carddb_pack/
carddb_pack.rs

1#![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}