Save hash object

This commit is contained in:
David Doblas Jiménez 2024-02-12 19:35:14 +01:00
parent c647f99e5c
commit 71abdf3454
2 changed files with 19 additions and 0 deletions

View File

@ -18,9 +18,18 @@ def parse_args():
init_parser = commands.add_parser("init")
init_parser.set_defaults(func=init)
hash_object_parser = commands.add_parser("hash-object")
hash_object_parser.set_defaults(func=hash_object)
hash_object_parser.add_argument("file")
return parser.parse_args()
def init(args):
data.init()
print(f"Initialized empty ugit repository in {Path.cwd()}/{data.GIT_DIR}")
def hash_object(args):
with open(args.file, "rb") as f:
print(data.hash_object(f.read()))

View File

@ -1,7 +1,17 @@
from pathlib import Path
import hashlib
GIT_DIR = ".ugit"
def init():
Path.mkdir(GIT_DIR)
Path.mkdir(f"{GIT_DIR}/objects")
def hash_object(data):
oid = hashlib.sha1(data).hexdigest()
with open(f"{GIT_DIR}/objects/{oid}", "wb") as out:
out.write(data)
return oid