from colorama import init
from colorama import Fore, Back, Style  
init()
service=main()
currtime=lambda : datetime.now().strftime("%Y_%m_%d")
def on_rm_error( func, path, exc_info):
    os.chmod( path, stat.S_IWRITE )
    os.unlink( path )


try:
    proc=subprocess.Popen(["git","clone","gitrepoURL"])
    proc.wait()
    zip_name=f"serverbackup_upto{currtime()}"
    shutil.make_archive(zip_name, 'zip', "reponame")
    print(Fore.RED + 'Zip created....')
    file_metadata = {'name': zip_name+".zip"}
    media = MediaFileUpload(zip_name+".zip", mimetype='application/zip')
    file = service.files().create(body=file_metadata,
                                    media_body=media,
                                    fields='id').execute()
    print(Fore.GREEN + 'File Uploaded....')
    media.__del__()
except Exception as e:
    print(e)
finally:
    shutil.rmtree("reponame", onerror = on_rm_error )
    os.remove(zip_name+".zip")
print(Fore.RED + 'Job Completed')