From 8d36a3a46df08decfe8a11a675b5ed77e619c963 Mon Sep 17 00:00:00 2001 From: Raamakrishnan Date: Mon, 20 Jan 2020 22:15:06 +0530 Subject: [PATCH] Just doodling around with basic main and lib file --- src/lib.rs | 34 ++++++++++++++++++++++++++++++++++ src/main.rs | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 src/lib.rs create mode 100644 src/main.rs diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..50d5f8e --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,34 @@ +#[derive(PartialEq, Debug)] +pub enum LineType { + File, + Define, + Filelist, + Unknown, +} + +pub fn parse_line(line: &str) -> LineType { + if line.starts_with("-f ") { + return LineType::Filelist; + } else if line.starts_with("+define+") { + return LineType::Define; + } else { + return LineType::Unknown; + } +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn parse_line_filelist() { + let line = "-f sample/files.f"; + assert_eq!(parse_line(line), LineType::Filelist); + } + + #[test] + fn parse_line_define() { + let line = "+define+CONST1=const1+CONST2=const2"; + assert_eq!(parse_line(line), LineType::Define); + } +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..300518f --- /dev/null +++ b/src/main.rs @@ -0,0 +1,33 @@ +use std::env; +use std::path::PathBuf; +use std::fs; + +fn main() { + let args: Vec = env::args().collect(); + + // get .f file + let dot_f_file = PathBuf::from(&args[1]); + println!("pathbuf {:?}", dot_f_file); + + // check if .f file exists + if dot_f_file.is_file() { + println!("File exists", ) + } else { + println!("File does not exist", ) + } + + // read .f file + let contents = fs::read_to_string(&dot_f_file) + .expect("Error while reading file"); + + println!("contents:\n{}", contents); + // check if all the files exist + for line in contents.lines() { + if PathBuf::from(line).is_file() { + println!("{} exists", line) + } + else { + println!("{} does not exist", line) + } + } +}