diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 5 | ||||
-rw-r--r-- | src/object.rs | 12 | ||||
-rw-r--r-- | src/repository.rs (renamed from src/core.rs) | 2 | ||||
-rw-r--r-- | src/utilities.rs | 2 |
4 files changed, 17 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index 8958192..a1c911c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,10 @@ -mod core; +mod repository; mod utilities; +mod object; use std::path::PathBuf; use clap::{Parser, Subcommand}; -use crate::core::GitRepository; +use crate::repository::GitRepository; #[derive(Parser)] #[command(version, about, long_about = None)] diff --git a/src/object.rs b/src/object.rs new file mode 100644 index 0000000..6374911 --- /dev/null +++ b/src/object.rs @@ -0,0 +1,12 @@ +enum GitObjectType { + Blob, + Commit, + Tag, + Tree, +} + +struct GitObject { + object_type: GitObjectType, + size: usize, + data: Vec<u8>, +}
\ No newline at end of file diff --git a/src/core.rs b/src/repository.rs index 0b7065f..6816d74 100644 --- a/src/core.rs +++ b/src/repository.rs @@ -54,7 +54,7 @@ impl GitRepository { create_path_or_die!(dir: repo.gitdir.clone().join("refs"), "Failed to create refs directory"); create_path_or_die!(dir: repo.gitdir.clone().join("refs").join("heads"), "Failed to create git refs/head directory"); create_path_or_die!(dir: repo.gitdir.clone().join("refs").join("tags"), "Failed to create git refs/tags directory"); - create_path_or_die!(file: repo.gitdir.clone().join("HEAD"), &"ref: refs/heads/master\n", "Failed to write HEAD file"); + create_path_or_die!(file: repo.gitdir.clone().join("HEAD"), "ref: refs/heads/master\n", "Failed to write HEAD file"); create_path_or_die!( file: repo.gitdir.clone().join("HEAD"), "ref: refs/heads/master\n", diff --git a/src/utilities.rs b/src/utilities.rs index 1357cdf..bc78495 100644 --- a/src/utilities.rs +++ b/src/utilities.rs @@ -21,7 +21,7 @@ macro_rules! create_path_or_die { (file: $path:expr, $content:expr, $message:expr) => { if let Ok(mut file) = std::fs::File::create($path) { - if let Err(e) = file.write_all($content.as_ref()) { + if let Err(e) = write!(file, $content) { die!(format!("{}\nError: {}", $message, e.to_string())); } } else { |