rgit/src/base.rs

34 lines
791 B
Rust

use std::fs;
#[path = "data.rs"]
mod data;
pub fn write_tree(directory: String) {
let entries = fs::read_dir(&directory).unwrap();
for entry in entries {
let item = entry.unwrap();
let metadata = item.metadata().unwrap();
let name = item.file_name();
let full = format!("{}/{}", directory, name.to_str().unwrap());
if is_ignored(&full) {
continue;
}
if metadata.is_file() {
let hash = data::hash_object(&fs::read(&full).unwrap(), "blob".to_owned());
println!("{} {}", hash, full);
} else if metadata.is_dir() {
write_tree(full);
}
}
}
fn is_ignored(path: &String) -> bool {
if path.contains(".rgit") {
true
} else {
false
}
}