summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib.rs5
-rw-r--r--src/main.rs25
2 files changed, 14 insertions, 16 deletions
diff --git a/src/lib.rs b/src/lib.rs
deleted file mode 100644
index 7cb52d0..0000000
--- a/src/lib.rs
+++ /dev/null
@@ -1,5 +0,0 @@
-extern crate regex;
-
-#[macro_use] extern crate lazy_static;
-
-pub mod qif;
diff --git a/src/main.rs b/src/main.rs
index a24d35e..c6f797a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,10 +1,13 @@
+extern crate regex;
+#[macro_use] extern crate lazy_static;
extern crate structopt;
-#[macro_use]
-extern crate structopt_derive;
+#[macro_use] extern crate structopt_derive;
+
+pub mod qif;
+
use structopt::StructOpt;
-extern crate qif_parser;
-use qif_parser::qif::*;
+use qif::*;
use std::io::prelude::*;
use std::io::*;
@@ -13,7 +16,6 @@ use std::path::PathBuf;
use std::result::Result;
use std::fs::File;
-use std::process;
fn parse_filepath(str: &OsStr) -> Result<PathBuf, OsString> {
let path: PathBuf = ::std::convert::From::from(str);
@@ -31,20 +33,20 @@ struct CliArgs {
files: Vec<PathBuf>
}
-fn main() {
+fn main() -> Result<(), Box<Error>> {
let args = CliArgs::from_args();
for filepath in &args.files {
let qif_result = {
- let file = File::open(filepath).unwrap();
+ let file = File::open(filepath)?;
let file_reader = BufReader::new(file);
let mut lines = file_reader.lines();
- let mut qif_file = QifFile::new(lines.next().unwrap().unwrap());
+ let mut qif_file = QifFile::new(lines.next().unwrap()?);
let mut next_entry = Vec::new();
for line_result in lines {
- let line = line_result.unwrap();
+ let line = line_result?;
if line == String::from("^") {
qif_file.append_non_empty(QifEntry::new(&next_entry));
next_entry.clear();
@@ -55,8 +57,9 @@ fn main() {
qif_file
};
- let mut file = File::create(filepath).unwrap();
- writeln!(file, "{}", qif_result).unwrap();
+ let mut file = File::create(filepath)?;
+ writeln!(file, "{}", qif_result)?;
}
println!("Processed {} files", args.files.len());
+ Ok(())
}