aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs39
1 files changed, 34 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs
index 4277e8c..85ba64a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -2,14 +2,43 @@ use structopt::StructOpt;
#[derive(Debug, StructOpt)]
struct Cli {
- /// The pattern to look for
- pattern: String,
- /// The path to the file to read
- #[structopt(parse(from_os_str))]
- path: std::path::PathBuf,
+ /// fpm command
+ command: String,
+}
+
+fn collect_source_files() -> Vec<std::path::PathBuf> {
+ let mut files: Vec<std::path::PathBuf> = Vec::new();
+ for entry in std::fs::read_dir(".").unwrap() {
+ let entry = entry.unwrap();
+ let path = entry.path();
+ if !path.is_dir() {
+ let ext = match path.extension() {
+ None => "None",
+ Some(ext) => ext.to_str().unwrap(),
+ };
+ if ext == "f90" {
+ files.push(path);
+ }
+ }
+ }
+ files
+}
+
+fn build() {
+ let files = collect_source_files();
+ for file in &files {
+ println!("File: {}", file.to_str().unwrap());
+ }
+ println!("Files: {:?}", files);
}
fn main() {
let args = Cli::from_args();
println!("{:?}", args);
+ if args.command == "build" {
+ println!("Command: build");
+ build();
+ } else {
+ panic!("Unknown command");
+ }
}