summary refs log tree commit diff stats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..b056c88
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,40 @@
+use std::path::PathBuf;
+
+use clap::Parser;
+use command_line_interface::{
+    Args,
+    Command::New,
+    SubCommand::{Chapter, Project, Section},
+};
+use new::{chapter::generate_new_chapter, project::generate_new_project, section::generate_new_section};
+
+pub mod command_line_interface;
+pub mod data;
+pub mod new;
+
+fn main() {
+    let args = Args::parse();
+
+    match args.cli {
+        New(new_command) => match new_command {
+            Section { name } => generate_new_section(name).unwrap(),
+            Chapter { name } => generate_new_chapter(name).unwrap(),
+            Project {
+                name,
+                first_chapter,
+                //first_section,
+            } => {
+                let preamble_path = PathBuf::from("/home/dt/repos/tex/preset/headers/preamble.tex");
+                let resource_path = PathBuf::from("/home/dt/repos/tex/preset/resources");
+                generate_new_project(
+                    name,
+                    first_chapter,
+                    //first_section,
+                    preamble_path,
+                    resource_path,
+                )
+                .unwrap()
+            }
+        },
+    }
+}