summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNora <nora.widdecke@tu-bs.de>2019-01-12 15:07:38 +0100
committerNora <nora.widdecke@tu-bs.de>2019-01-12 16:35:11 +0100
commitc3da66e3a6fb6232214a52da3b419396cd552776 (patch)
tree91bf473b440434f5f0b213041ba89ffcb9fad6cf
parentdbc6a2bb978d15eea8093f83c8a5826bbdee85f4 (diff)
split off seqfile handling from seq.rs
-rw-r--r--src/actions/seq.rs27
-rw-r--r--src/bin/khaleesi.rs3
-rw-r--r--src/lib.rs1
-rw-r--r--src/seqfile.rs28
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);
diff --git a/src/lib.rs b/src/lib.rs
index d9a2b3f..0acabec 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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)
+}
+