From 9377c87b6213ef16c45d669abe62c2c91ed41f42 Mon Sep 17 00:00:00 2001 From: bobtwinkles Date: Fri, 4 May 2018 04:57:27 -0400 Subject: [PATCH 1/2] Fix some unused import warnings. --- src/cli.rs | 1 - src/output/mod.rs | 1 - 2 files changed, 2 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index abb48e33528..22702b16e31 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -5,7 +5,6 @@ use failure::Error; use std::time::{Duration, Instant}; use structopt::StructOpt; -use std::io; use std::path::PathBuf; arg_enum! { diff --git a/src/output/mod.rs b/src/output/mod.rs index 5b7a670b2d1..6305d124ab3 100644 --- a/src/output/mod.rs +++ b/src/output/mod.rs @@ -64,7 +64,6 @@ impl Output { // create a writer for the provided output. // If we have an output directory use that, otherwise just dump to stdout use std::fs; - use std::path::Path; Ok(match out_dir { Some(dir) => { From 5c46e5c48554839c80b07130c368988c638fba39 Mon Sep 17 00:00:00 2001 From: bobtwinkles Date: Fri, 4 May 2018 05:16:43 -0400 Subject: [PATCH 2/2] Convert arguments to take Strings instead of PathBufs ... since the FromStr implementation for PathBuf was removed temporarily. --- src/cli.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 22702b16e31..e19720b9005 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -2,11 +2,10 @@ use crate::intern; use crate::output::Output; use crate::tab_delim; use failure::Error; +use std::path::Path; use std::time::{Duration, Instant}; use structopt::StructOpt; -use std::path::PathBuf; - arg_enum! { #[derive(Debug, Clone, Copy)] pub enum Algorithm { @@ -27,39 +26,42 @@ pub struct Opt { #[structopt(short = "v")] verbose: bool, #[structopt(short = "o", long = "output")] - output_directory: Option, + output_directory: Option, #[structopt(raw(required = "true"))] - fact_dirs: Vec, + fact_dirs: Vec, } pub fn main(opt: Opt) -> Result<(), Error> { do catch { + let output_directory = opt + .output_directory + .map(|x| {Path::new(&x).to_owned()} ); for facts_dir in opt.fact_dirs { let tables = &mut intern::InternerTables::new(); let result: Result<(Duration, Output), Error> = do catch { let verbose = opt.verbose; let algorithm = opt.algorithm; - let all_facts = tab_delim::load_tab_delimited_facts(tables, &facts_dir)?; + let all_facts = tab_delim::load_tab_delimited_facts(tables, &Path::new(&facts_dir))?; timed(|| Output::compute(all_facts, algorithm, verbose)) }; match result { Ok((duration, output)) => { println!("--------------------------------------------------"); - println!("Directory: {}", facts_dir.display()); + println!("Directory: {}", facts_dir); if !opt.skip_timing { let seconds: f64 = duration.as_secs() as f64; let millis: f64 = duration.subsec_nanos() as f64 * 0.000_000_001_f64; println!("Time: {:0.3}s", seconds + millis); } if !opt.skip_tuples { - output.dump(&opt.output_directory, tables).expect("Failed to write output"); + output.dump(&output_directory, tables).expect("Failed to write output"); } } Err(error) => { - eprintln!("`{}`: {}", facts_dir.display(), error); + eprintln!("`{}`: {}", facts_dir, error); } } }