]> git.r.bdr.sh - rbdr/blog/blobdiff - src/main.rs
Add logic skeleton for rust version
[rbdr/blog] / src / main.rs
diff --git a/src/main.rs b/src/main.rs
new file mode 100644 (file)
index 0000000..cb258c2
--- /dev/null
@@ -0,0 +1,27 @@
+// mod argument_parser;
+mod configuration;
+mod command;
+
+use std::env::args;
+use std::io::Result;
+use configuration::Configuration;
+use command::{available_commands, Command, help::Help};
+
+fn main() -> Result<()> {
+    let configuration = Configuration::new();
+    let commands = available_commands();
+
+    println!("CONFIGURATION DIRECTORY: {}", configuration.config_directory.display());
+    println!("DATA DIRECTORY: {}", configuration.data_directory.display());
+    println!("OUTPUT DIRECTORY: {}", configuration.output_directory.display());
+
+    let arguments: Vec<String> = args().collect();
+
+    if let Some(command_name) = arguments.get(1) {
+        if let Some(command) = commands.iter().find(|&c| c.command() == command_name) {
+            return command.execute(arguments.get(2));
+        }
+    }
+
+    Help::new().execute(None)
+}