From a8cf3b2757dee028e86f7cc6848b741c46dd933a Mon Sep 17 00:00:00 2001 From: Rosyid Haryadi Date: Tue, 18 Mar 2025 15:32:50 +0700 Subject: upd: implementing cat-file & add readme --- src/main.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 66891c4..a82a6e8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ mod object; use crate::repository::GitRepository; use clap::{Parser, Subcommand}; use std::path::PathBuf; +use crate::object::{GitObject, GitObjectType}; #[derive(Parser)] #[command(version, about, long_about = None)] @@ -69,6 +70,19 @@ fn main() { } GitRepository::create_new_repo(p); } + Command::CatFile { object_type, sha} => { + // todo detect root otomatis + // temporary + let repo = GitRepository::from_dir(PathBuf::from(".")); + let object_type = match &object_type[..] { + "blob" => GitObjectType::Blob, + "commit" => GitObjectType::Commit, + "tag" => GitObjectType::Tag, + "tree" => GitObjectType::Tree, + _ => GitObjectType::Undefined + }; + repo.cat_file(object_type, sha.as_str()); + } _ => {} } } \ No newline at end of file -- cgit v1.2.3-70-g09d2