aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/geniza-sleep.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/geniza-sleep.rs')
-rw-r--r--src/bin/geniza-sleep.rs34
1 files changed, 28 insertions, 6 deletions
diff --git a/src/bin/geniza-sleep.rs b/src/bin/geniza-sleep.rs
index 10fc16b..17ff91b 100644
--- a/src/bin/geniza-sleep.rs
+++ b/src/bin/geniza-sleep.rs
@@ -18,22 +18,44 @@ fn run() -> Result<()> {
let matches = App::new("geniza-sleep")
.version(env!("CARGO_PKG_VERSION"))
.subcommand(SubCommand::with_name("info")
- .about("Reads a SLEEP file and shows some basic metadata")
- .arg_from_usage("<FILE> 'SLEEP file to read'"))
+ .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 empty SLEEP file (with header)")
+ .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 SLEEP file, iterates through all entries, prints raw bytes")
+ .about("Reads a single SLEEP file, iterates through all entries, prints raw bytes")
.arg_from_usage("<FILE> 'SLEEP file to read'"))
.get_matches();
match matches.subcommand() {
("info", Some(subm)) => {
+ let dir = Path::new(subm.value_of("DIR").unwrap());
+ let prefix = subm.value_of("prefix").unwrap();
+ let mut sdr = SleepDirRegister::open(dir, prefix, false)?;
+ //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));
@@ -42,7 +64,7 @@ fn run() -> Result<()> {
println!("Entry Size (bytes): {}", sf.get_entry_size());
println!("Entry count: {}", sf.len()?);
},
- ("create", Some(subm)) => {
+ ("file-create", Some(subm)) => {
let path = Path::new(subm.value_of("FILE").unwrap());
let algo_name = subm.value_of("algo_name").unwrap();
let algo_name = if algo_name.len() == 0 {
@@ -57,7 +79,7 @@ fn run() -> Result<()> {
algo_name)?;
println!("Done!");
},
- ("read-all", Some(subm)) => {
+ ("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()? {