diff --git a/src/local/import.rs b/src/local/import.rs new file mode 100644 index 00000000..8db8f0e3 --- /dev/null +++ b/src/local/import.rs @@ -0,0 +1,41 @@ +// import old shell history! +// automatically hoover up all that we can find + +use std::fs::File; +use std::io::{BufRead, BufReader}; + +use eyre::Result; + +use crate::models::history::History; + +pub struct ImportBash { + file: BufReader, +} + +impl ImportBash { + pub fn new(path: &str) -> Result { + let file = File::open(path)?; + let buf = BufReader::new(file); + + Ok(ImportBash { file: buf }) + } +} + +impl Iterator for ImportBash { + type Item = History; + + fn next(&mut self) -> Option { + let mut line = String::new(); + + match self.file.read_line(&mut line) { + Ok(0) => None, + Err(_) => None, + + Ok(_) => Some(History { + cwd: "none".to_string(), + command: line, + timestamp: -1, + }), + } + } +}