summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs14
1 files changed, 14 insertions, 0 deletions
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