aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOndřej Čertík <ondrej@certik.us>2020-01-11 16:10:58 -0700
committerOndřej Čertík <ondrej@certik.us>2020-01-11 23:12:14 -0700
commitd326d197060c7268393efe2baf8c2e5358c0f385 (patch)
tree235a66edb78eefbe845446d4bb8120db3d283b4a /src
parente4881118047be41a27e15ce98a18141eac028809 (diff)
downloadfpm-d326d197060c7268393efe2baf8c2e5358c0f385.tar.gz
fpm-d326d197060c7268393efe2baf8c2e5358c0f385.zip
List f90 in the current directory
Diffstat (limited to 'src')
-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");
+ }
}