about summary refs log tree commit diff
path: root/src/actions/create.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions/create.rs')
-rw-r--r--src/actions/create.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/actions/create.rs b/src/actions/create.rs
new file mode 100644
index 0000000..26d20c8
--- /dev/null
+++ b/src/actions/create.rs
@@ -0,0 +1,20 @@
+use std::{fs, io};
+
+use crate::{actions::update, files::Locations};
+
+use super::ActionOptions;
+
+pub fn create(command_options: ActionOptions) -> io::Result<()> {
+    let locations = Locations::from(&command_options);
+
+    if locations.ka_path.exists() {
+        fs::remove_dir_all(locations.ka_path.as_path())?;
+    }
+
+    fs::create_dir(locations.ka_path)?;
+    fs::create_dir(locations.ka_files_path)?;
+
+    update(command_options)?;
+
+    Ok(())
+}