use lox::BridgeDb; use std::fs::File; use std::io::Write; use std::path::Path; fn main() { let bridgedb_privkey_filename = "bridgedb.json"; let bridgedb_pubkey_filename = "bridgedb_pubkey.json"; // If bridgedb has already been created, recreate it from file. // Otherwise, create new bridgedb. let bridgedb = if Path::new(bridgedb_privkey_filename).exists() { // read in file let bridgedb_infile = File::open(bridgedb_privkey_filename).unwrap(); serde_json::from_reader(bridgedb_infile).unwrap() } else { // create new bridgedb (implicitly generates keys) let bridgedb = BridgeDb::new(); // output full serialized bridgedb let mut bridgedb_outfile = File::create(bridgedb_privkey_filename) .expect("Failed to create bridgedb privkey file"); let bridgedb_outfile_json = serde_json::to_string(&bridgedb).unwrap(); write!(bridgedb_outfile, "{}", bridgedb_outfile_json) .expect("Failed to write to bridgedb.json"); // output bridgedb public key let mut bridgedb_pubkey_outfile = File::create(bridgedb_pubkey_filename).expect("Failed to create bridgedb pubkey file"); write!( bridgedb_pubkey_outfile, "{}", serde_json::to_string(&bridgedb.pubkey).unwrap() ) .expect("Failed to write to bridgedb pubkey file"); // return bridgedb bridgedb }; }