]> git.r.bdr.sh - rbdr/blog/blobdiff - src/main.rs
Don't use clang
[rbdr/blog] / src / main.rs
index bf1e1844a2162646f2046f728af45de84a187aef..a5c2cf646a22b7e219d7c594c456e745044c73c9 100644 (file)
@@ -1,13 +1,40 @@
 // mod argument_parser;
 mod configuration;
 mod command;
+mod constants;
+mod gemini_parser;
+mod generator;
+mod archiver;
+mod metadata;
+mod post;
+mod template;
+mod utils;
+mod remote;
 
 use std::iter::once;
 use std::env::args;
 use std::io::Result;
 use command::{available_commands, Command, help::Help};
+use configuration::Configuration;
 
 fn main() -> Result<()> {
+    let result = run();
+
+    if cfg!(debug_assertions) {
+        result
+    } else {
+        match result {
+            Ok(_) => Ok(()),
+            Err(e) => {
+                eprintln!("Error: {}", e);
+                std::process::exit(1);
+            }
+        }
+    }
+}
+
+fn run() -> Result<()> {
+    let configuration = Configuration::new();
     let commands = available_commands();
     let arguments: Vec<String> = args().collect();
 
@@ -23,7 +50,7 @@ fn main() -> Result<()> {
                 .collect();
 
             for command in command_chain {
-                let result = command.execute(arguments.get(2));
+                let result = command.execute(arguments.get(2), &configuration, command_name);
                 if let Err(_) = result {
                     return result;
                 }
@@ -33,5 +60,5 @@ fn main() -> Result<()> {
         }
     }
 
-    Help::new().execute(None)
+    Help::new().execute(None, &configuration, &"help".to_string())
 }