diff options
Diffstat (limited to 'src/bin')
-rw-r--r-- | src/bin/geniza-net.rs | 53 | ||||
-rw-r--r-- | src/bin/geniza-sleep.rs | 79 |
2 files changed, 71 insertions, 61 deletions
diff --git a/src/bin/geniza-net.rs b/src/bin/geniza-net.rs index be4dba0..a3abc61 100644 --- a/src/bin/geniza-net.rs +++ b/src/bin/geniza-net.rs @@ -1,10 +1,10 @@ -// Free Software under GPL-3.0, see LICENSE +// Free Software under GPL-3.0, see LICENSE // Copyright 2017 Bryan Newbold -#[macro_use] -extern crate error_chain; extern crate clap; extern crate env_logger; +#[macro_use] +extern crate error_chain; extern crate geniza; // TODO: more careful import @@ -12,19 +12,22 @@ use geniza::*; use clap::{App, SubCommand}; fn run() -> Result<()> { - env_logger::init().unwrap(); - + let matches = App::new("geniza-net") .version(env!("CARGO_PKG_VERSION")) - .subcommand(SubCommand::with_name("connect") - .about("Connects to a peer and exchanges handshake") - .arg_from_usage("<host_port> 'peer host:port to connect to'") - .arg_from_usage("<dat_key> 'dat key (public key) to register with'")) - .subcommand(SubCommand::with_name("receive-all") - .about("Connects to a peer, pulls all metadata and content") - .arg_from_usage("<host_port> 'peer host:port to connect to'") - .arg_from_usage("<dat_key> 'dat key (public key) to register with'")) + .subcommand( + SubCommand::with_name("connect") + .about("Connects to a peer and exchanges handshake") + .arg_from_usage("<host_port> 'peer host:port to connect to'") + .arg_from_usage("<dat_key> 'dat key (public key) to register with'"), + ) + .subcommand( + SubCommand::with_name("receive-all") + .about("Connects to a peer, pulls all metadata and content") + .arg_from_usage("<host_port> 'peer host:port to connect to'") + .arg_from_usage("<dat_key> 'dat key (public key) to register with'"), + ) .get_matches(); @@ -32,51 +35,45 @@ fn run() -> Result<()> { ("connect", Some(subm)) => { let host_port = subm.value_of("host_port").unwrap(); let dat_key = subm.value_of("dat_key").unwrap(); - if dat_key.len() != 32*2 { + if dat_key.len() != 32 * 2 { bail!("dat key not correct length"); } let mut key_bytes = vec![]; for i in 0..32 { - let r = u8::from_str_radix(&dat_key[2*i .. 2*i+2], 16); + let r = u8::from_str_radix(&dat_key[2 * i..2 * i + 2], 16); match r { Ok(b) => key_bytes.push(b), Err(e) => bail!("Problem with hex: {}", e), }; } - DatConnection::connect( - host_port, - &key_bytes, - false)?; + DatConnection::connect(host_port, &key_bytes, false)?; println!("Done!"); - }, + } ("receive-all", Some(subm)) => { let host_port = subm.value_of("host_port").unwrap(); let dat_key = subm.value_of("dat_key").unwrap(); - if dat_key.len() != 32*2 { + if dat_key.len() != 32 * 2 { bail!("dat key not correct length"); } let mut key_bytes = vec![]; for i in 0..32 { - let r = u8::from_str_radix(&dat_key[2*i .. 2*i+2], 16); + let r = u8::from_str_radix(&dat_key[2 * i..2 * i + 2], 16); match r { Ok(b) => key_bytes.push(b), Err(e) => bail!("Problem with hex: {}", e), }; } - let mut dc = DatConnection::connect( - host_port, - &key_bytes, - false)?; + let mut dc = DatConnection::connect(host_port, &key_bytes, false)?; // XXX: number here totally arbitrary dc.receive_all(false, 10)?; dc.receive_all(true, 10)?; println!("Done!"); - }, + } _ => { println!("Missing or unimplemented command!"); println!("{}", matches.usage()); ::std::process::exit(-1); - }, + } } Ok(()) } diff --git a/src/bin/geniza-sleep.rs b/src/bin/geniza-sleep.rs index 461df0d..1a50d17 100644 --- a/src/bin/geniza-sleep.rs +++ b/src/bin/geniza-sleep.rs @@ -1,11 +1,11 @@ -// Free Software under GPL-3.0, see LICENSE +// Free Software under GPL-3.0, see LICENSE // Copyright 2017 Bryan Newbold #[macro_use] -extern crate error_chain; -#[macro_use] extern crate clap; extern crate env_logger; +#[macro_use] +extern crate error_chain; extern crate geniza; // TODO: more careful import @@ -14,31 +14,40 @@ use std::path::Path; use clap::{App, SubCommand}; fn run() -> Result<()> { - env_logger::init().unwrap(); - + let matches = App::new("geniza-sleep") .version(env!("CARGO_PKG_VERSION")) - .subcommand(SubCommand::with_name("info") - .about("Reads a SLEEP dir register and shows some basic metadata") - .arg_from_usage("<DIR> 'directory containing files'") - .arg_from_usage("<prefix> 'prefix for each data file'")) - .subcommand(SubCommand::with_name("create") - .about("Creates an SLEEP directory register (with header)") - .arg_from_usage("<DIR> 'directory containing files'") - .arg_from_usage("<prefix> 'prefix for each data file'")) - .subcommand(SubCommand::with_name("file-info") - .about("Reads a single SLEEP file and shows some basic metadata") - .arg_from_usage("<FILE> 'SLEEP file to read'")) - .subcommand(SubCommand::with_name("file-create") - .about("Creates an empty single SLEEP file (with header)") - .arg_from_usage("<FILE> 'SLEEP file to write (can't exist)'") - .arg_from_usage("<magic> 'Magic word to use (eg, 0x5025700)'") - .arg_from_usage("<entry_size> 'Size of each entry (bytes)'") - .arg_from_usage("<algo_name> 'Name of algorithm (empty string for none)'")) - .subcommand(SubCommand::with_name("read-all") - .about("Reads a single SLEEP file, iterates through all entries, prints raw bytes") - .arg_from_usage("<FILE> 'SLEEP file to read'")) + .subcommand( + SubCommand::with_name("info") + .about("Reads a SLEEP dir register and shows some basic metadata") + .arg_from_usage("<DIR> 'directory containing files'") + .arg_from_usage("<prefix> 'prefix for each data file'"), + ) + .subcommand( + SubCommand::with_name("create") + .about("Creates an SLEEP directory register (with header)") + .arg_from_usage("<DIR> 'directory containing files'") + .arg_from_usage("<prefix> 'prefix for each data file'"), + ) + .subcommand( + SubCommand::with_name("file-info") + .about("Reads a single SLEEP file and shows some basic metadata") + .arg_from_usage("<FILE> 'SLEEP file to read'"), + ) + .subcommand( + SubCommand::with_name("file-create") + .about("Creates an empty single SLEEP file (with header)") + .arg_from_usage("<FILE> 'SLEEP file to write (can't exist)'") + .arg_from_usage("<magic> 'Magic word to use (eg, 0x5025700)'") + .arg_from_usage("<entry_size> 'Size of each entry (bytes)'") + .arg_from_usage("<algo_name> 'Name of algorithm (empty string for none)'"), + ) + .subcommand( + SubCommand::with_name("read-all") + .about("Reads a single SLEEP file, iterates through all entries, prints raw bytes") + .arg_from_usage("<FILE> 'SLEEP file to read'"), + ) .get_matches(); @@ -50,22 +59,25 @@ fn run() -> Result<()> { //debug!(println!("{:?}", sdr)); println!("Entry count: {}", sdr.len()?); println!("Total size (bytes): {}", sdr.len_bytes()?); - }, + } ("create", Some(subm)) => { let dir = Path::new(subm.value_of("DIR").unwrap()); let prefix = subm.value_of("prefix").unwrap(); SleepDirRegister::create(dir, prefix)?; println!("Done!"); - }, + } ("file-info", Some(subm)) => { let path = Path::new(subm.value_of("FILE").unwrap()); let sf = SleepFile::open(path, false)?; //debug!(println!("{:?}", sf)); println!("Magic: 0x{:X}", sf.get_magic()); - println!("Algorithm: '{}'", sf.get_algorithm().or(Some("".to_string())).unwrap()); + println!( + "Algorithm: '{}'", + sf.get_algorithm().or(Some("".to_string())).unwrap() + ); println!("Entry Size (bytes): {}", sf.get_entry_size()); println!("Entry count: {}", sf.len()?); - }, + } ("file-create", Some(subm)) => { let path = Path::new(subm.value_of("FILE").unwrap()); let algo_name = subm.value_of("algo_name").unwrap(); @@ -78,21 +90,22 @@ fn run() -> Result<()> { path, value_t_or_exit!(subm, "magic", u32), value_t_or_exit!(subm, "entry_size", u16), - algo_name)?; + algo_name, + )?; println!("Done!"); - }, + } ("file-read-all", Some(subm)) => { let path = Path::new(subm.value_of("FILE").unwrap()); let mut sf = SleepFile::open(path, false)?; for i in 0..sf.len()? { println!("{}: {:?}", i, sf.read(i)); } - }, + } _ => { println!("Missing or unimplemented command!"); println!("{}", matches.usage()); ::std::process::exit(-1); - }, + } } Ok(()) } |