DIY_GIT_in_Python/ugit/cli.py
2024-02-21 20:46:59 +01:00

48 lines
1.0 KiB
Python

from pathlib import Path
import argparse
import sys
from . import base
from . import data
def main():
args = parse_args()
args.func(args)
def parse_args():
parser = argparse.ArgumentParser()
commands = parser.add_subparsers(dest="command")
commands.required = True
init_parser = commands.add_parser("init")
init_parser.set_defaults(func=init)
cat_file_parser = commands.add_parser("cat-file")
cat_file_parser.set_defaults(func=cat_file)
cat_file_parser.add_argument("object")
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()))
def cat_file(args):
sys.stdout.flush()
sys.stdout.buffer.write(data.get_object(args.object), expected=None)