diff options
author | Nora <nora.widdecke@tu-bs.de> | 2019-01-12 15:07:38 +0100 |
---|---|---|
committer | Nora <nora.widdecke@tu-bs.de> | 2019-01-12 16:35:11 +0100 |
commit | c3da66e3a6fb6232214a52da3b419396cd552776 (patch) | |
tree | 91bf473b440434f5f0b213041ba89ffcb9fad6cf | |
parent | dbc6a2bb978d15eea8093f83c8a5826bbdee85f4 (diff) |
split off seqfile handling from seq.rs
-rw-r--r-- | src/actions/seq.rs | 27 | ||||
-rw-r--r-- | src/bin/khaleesi.rs | 3 | ||||
-rw-r--r-- | src/lib.rs | 1 | ||||
-rw-r--r-- | src/seqfile.rs | 28 |
4 files changed, 36 insertions, 23 deletions
diff --git a/src/actions/seq.rs b/src/actions/seq.rs index cbdca21..1be32c8 100644 --- a/src/actions/seq.rs +++ b/src/actions/seq.rs @@ -1,11 +1,9 @@ extern crate atty; use itertools::Itertools; -use std::fs::rename; -use std::io; -use defaults::*; -use utils::fileutil as utils; +use seqfile; +use utils::fileutil; pub fn do_seq(_args: &[String]) { if atty::isnt(atty::Stream::Stdin) { @@ -20,11 +18,8 @@ pub fn do_seq(_args: &[String]) { } fn write_stdin_to_seqfile() { - let tmpfilename = get_datafile("tmpseq"); - - let seqfile = get_seqfile(); let mut lines; - match utils::read_lines_from_stdin() { + match fileutil::read_lines_from_stdin() { Ok(mut input) => lines = input.join("\n"), Err(error) => { error!("Error reading from stdin: {}", error); @@ -32,24 +27,12 @@ fn write_stdin_to_seqfile() { } } lines.push_str("\n"); - if let Err(error) = utils::write_file(&tmpfilename, &lines) { - error!("Could not write seqfile: {}", error); - return - } - - if let Err(error) = rename(tmpfilename, seqfile) { - error!("{}", error) - } -} -pub fn read_seqfile() -> io::Result<impl Iterator<Item = String>> { - let seqfile = get_seqfile(); - debug!("Reading sequence file: {}", seqfile.to_string_lossy()); - utils::read_lines_from_file(&seqfile) + seqfile::write_to_seqfile(&lines); } fn write_seqfile_to_stdout() { - if let Ok(sequence) = read_seqfile() { + if let Ok(sequence) = seqfile::read_seqfile() { for line in sequence { println!("{}", line); } diff --git a/src/bin/khaleesi.rs b/src/bin/khaleesi.rs index dd56435..90e1e4e 100644 --- a/src/bin/khaleesi.rs +++ b/src/bin/khaleesi.rs @@ -8,6 +8,7 @@ extern crate log; use khaleesi::config::Config; use khaleesi::defaults::*; use khaleesi::actions::*; +use khaleesi::seqfile::read_seqfile; use khaleesi::utils::fileutil as utils; use std::env; @@ -148,7 +149,7 @@ fn default_input() -> Option<Box<dyn Iterator<Item = String>>> { debug!("stdin"); Some(Box::new(utils::read_lines_from_stdin().unwrap())) } else { - match seq::read_seqfile() { + match read_seqfile() { Ok(sequence) => Some(Box::new(sequence)), Err(err) => { error!("{}", err); @@ -4,6 +4,7 @@ pub mod config; pub mod defaults; pub mod icalwrap; pub mod selectors; +pub mod seqfile; pub mod utils; #[cfg(test)] pub mod testutils; diff --git a/src/seqfile.rs b/src/seqfile.rs new file mode 100644 index 0000000..1f1abc8 --- /dev/null +++ b/src/seqfile.rs @@ -0,0 +1,28 @@ +extern crate atty; + +use std::fs::rename; +use std::io; + +use defaults::*; +use utils::fileutil; + +pub fn write_to_seqfile(lines: &str) { + let tmpfilename = get_datafile("tmpseq"); + + if let Err(error) = fileutil::write_file(&tmpfilename, lines) { + error!("Could not write seqfile: {}", error); + return + } + + let seqfile = get_seqfile(); + if let Err(error) = rename(tmpfilename, seqfile) { + error!("{}", error) + } +} + +pub fn read_seqfile() -> io::Result<impl Iterator<Item = String>> { + let seqfile = get_seqfile(); + debug!("Reading sequence file: {}", seqfile.to_string_lossy()); + fileutil::read_lines_from_file(&seqfile) +} + |