summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs42
1 files changed, 23 insertions, 19 deletions
diff --git a/src/main.rs b/src/main.rs
index c6f797a..e39f589 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -37,28 +37,32 @@ fn main() -> Result<(), Box<Error>> {
let args = CliArgs::from_args();
for filepath in &args.files {
- let qif_result = {
- 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()?);
- let mut next_entry = Vec::new();
+ let file = File::open(filepath)?;
+ let file_reader = BufReader::new(file);
+ let mut lines = file_reader.lines();
- for line_result in lines {
- let line = line_result?;
- if line == String::from("^") {
- qif_file.append_non_empty(QifEntry::new(&next_entry));
- next_entry.clear();
- } else {
- next_entry.push(line);
+ if let Some(header_line) = lines.next() {
+ let qif_result = {
+ let mut qif_file = QifFile::new(header_line?);
+ let mut next_entry = Vec::new();
+
+ for line_result in lines {
+ let line = line_result?;
+ if line == String::from("^") {
+ qif_file.push(QifEntry::new(&next_entry));
+ next_entry.clear();
+ } else {
+ next_entry.push(line);
+ }
}
- }
- qif_file
- };
+ qif_file
+ };
- let mut file = File::create(filepath)?;
- writeln!(file, "{}", qif_result)?;
+ let mut file = File::create(filepath)?;
+ writeln!(file, "{}", qif_result)?;
+ } else {
+ println!("{} was empty", filepath.display());
+ }
}
println!("Processed {} files", args.files.len());
Ok(())