import os import re import shutil import zipfile import hashlib from dotenv import load_dotenv class Pack: def __init__(self): load_dotenv() self.repourl = os.environ.get("RESOURCE_PACK_URL") command = "git clone git@github.com:" + self.repourl self.dir = re.split("/|\.", self.repourl)[1] status = os.system(command) print(status) def __del__(self): shutil.rmtree(self.dir) def pull(self) -> None: os.system("git -C {} pull origin master".format(self.dir)) def collate(self) -> None: if os.path.exists("pack"): shutil.rmtree("pack") os.mkdir("pack") shutil.copytree(self.dir+"/assets", "pack/assets") shutil.copy("ResourcePack/pack.mcmeta", "pack/pack.mcmeta") shutil.copy("ResourcePack/pack.png", "pack/pack.png") def compress(self) -> None: if not os.path.exists("files"): os.mkdir("files") os.system("zip -r files/pack.zip pack") shutil.rmtree("pack") def hash(self): sha1sum = hashlib.sha1() with open("files/pack.zip", "rb") as pack: block = pack.read(2**16) while len(block) != 0: sha1sum.update(block) block = pack.read(2**16) self.hash = sha1sum.hexdigest() with open("files/hash", 'w') as hashfile: hashfile.write(self.hash) if __name__ == "__main__": from dotenv import load_dotenv load_dotenv() pack = Pack() pack.pull() pack.collate() pack.compress() pack.hash() #pack = None