diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/src/main.rs b/src/main.rs index 68f8d0a..bc00355 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,7 @@ use std::{ io::{self, BufRead, BufReader, BufWriter, Write}, iter, path::{Component, Path, PathBuf}, - process::{Command, Stdio, self}, + process::{self, Command, Stdio}, }; use { @@ -43,7 +43,7 @@ fn main() { fn work() -> Result<(), io::Error> { let (flags, rest) = match parse_args() { Ok(a) => a, - Err(e) => usage(Some(e)) + Err(e) => usage(Some(e)), }; let (cmd, args) = rest.split_first().unwrap_or_else(|| usage(None)); @@ -69,31 +69,24 @@ fn work() -> Result<(), io::Error> { // Pass the source files to the child process. { - let ci = child - .stdin - .take() - .unwrap_or_else(|| { - err!("Could not open the child process’ stdin"); - }); + let ci = child.stdin.take().unwrap_or_else(|| { + err!("Could not open the child process’ stdin"); + }); let mut ci = BufWriter::new(ci); if flags.encode { srcs.iter() .try_for_each(|src| writeln!(ci, "{}", encode_string(src)))?; } else { - srcs.iter() - .try_for_each(|src| writeln!(ci, "{}", src))?; + srcs.iter().try_for_each(|src| writeln!(ci, "{}", src))?; } } // Read the destination file list from the process. let mut dsts = Vec::with_capacity(srcs.len()); { - let co = child - .stdout - .take() - .unwrap_or_else(|| { - err!("Count not open the child process’ stdout."); - }); + let co = child.stdout.take().unwrap_or_else(|| { + err!("Count not open the child process’ stdout."); + }); let co = BufReader::new(co); // TODO: Don’t allocate an intermediary String per line, by using the BufReader buffer. @@ -130,9 +123,15 @@ fn work() -> Result<(), io::Error> { let d = normalize_path(&d); if !uniq_srcs.insert(s.clone()) { - err!("Input file “{}” specified more than once", s.to_string_lossy()); + err!( + "Input file “{}” specified more than once", + s.to_string_lossy() + ); } else if !uniq_dsts.insert(d.clone()) { - err!("Output file “{}” specified more than once", d.to_string_lossy()); + err!( + "Output file “{}” specified more than once", + d.to_string_lossy() + ); } else { let mut hasher = DefaultHasher::new(); s.hash(&mut hasher); @@ -169,7 +168,7 @@ fn parse_args() -> Result<(Flags, Vec<OsString>), lexopt::Error> { Short('d') | Long("dryrun") => { flags.dryrun = true; flags.verbose = true; - }, + } Short('e') | Long("encode") => flags.encode = true, Short('i') | Long("individual") => flags.individual = true, Short('v') | Long("verbose") => flags.verbose = true, @@ -274,7 +273,7 @@ fn move_path(flags: &Flags, from: &PathBuf, to: &PathBuf) { fn copy_and_remove_file_or_dir<'a>( from: &'a PathBuf, - to: &'a PathBuf + to: &'a PathBuf, ) -> Result<(), (&'a PathBuf, io::Error)> { let data = fs::metadata(&from).map_err(|e| (from, e))?; if data.is_dir() { |