From 70a6c99192ec3eacd438e63854eafba7bb01ce2a Mon Sep 17 00:00:00 2001 From: Shubham Singh Date: Sun, 17 Dec 2023 10:06:12 +0530 Subject: [PATCH] Incomplete (config.yaml `impl` for new commit) --- src/commands/create.rs | 5 ++--- src/utils/yaml_layouts.rs | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/commands/create.rs b/src/commands/create.rs index 268c29e..1510d7a 100644 --- a/src/commands/create.rs +++ b/src/commands/create.rs @@ -9,14 +9,13 @@ pub fn create(branch_name: &String) { let content: std::borrow::Cow<'_, str> = String::from_utf8_lossy(&content_bytes); let mut init_content: InitLayout = serde_yaml::from_str(&content).unwrap(); - init_content.branches.push(branch_name.clone()); - let branch_folder: PathBuf = vault_folder.join(branch_name.clone()); + init_content.branches.push(branch_name.to_string()); + let branch_folder: PathBuf = vault_folder.join(branch_name); let branch_object_folder: PathBuf = branch_folder.join("objects"); // @TODO Handle Error here with match statements fs::create_dir(&branch_folder).unwrap(); fs::create_dir(branch_object_folder).unwrap(); create_config_yaml(&branch_folder); - println!("content of init.yaml file \n{:?}", init_content); let yaml_string: String = serde_yaml::to_string(&init_content).unwrap(); fs::write(init_file, yaml_string).unwrap(); } diff --git a/src/utils/yaml_layouts.rs b/src/utils/yaml_layouts.rs index 960ca7d..c64368f 100644 --- a/src/utils/yaml_layouts.rs +++ b/src/utils/yaml_layouts.rs @@ -1,6 +1,9 @@ +use std::path::Path; use serde::{Deserialize, Serialize}; +use super::get_current_branch::{self, get_current_branch}; + #[derive(Serialize, Deserialize, PartialEq, Debug)] pub struct InitLayout { pub current_branch: String, @@ -22,8 +25,7 @@ struct Commit { #[derive(Serialize, Deserialize, PartialEq, Debug)] struct Hash { - short: String, - long: String, + hash: String, } impl Default for ConfigLayout { @@ -37,7 +39,16 @@ impl Default for ConfigLayout { } impl ConfigLayout { - fn add_commit() { - // @TODO: Add login to update commit in struct. + fn add_commit(commit_data: &Commit) { + let current_branch: Result = get_current_branch(); + match current_branch { + Ok(current_branch) => { + let vault_path: &Path = Path::new(".vault"); + let branch_path: std::path::PathBuf = vault_path.join(current_branch); + let config_path: std::path::PathBuf = branch_path.join("config.yaml"); + todo!() + } + Err(e) => panic!("Some error occurred: {e}"), + } } }