From 685c74c4fa212b132c55be1c91e5b366a3593b83 Mon Sep 17 00:00:00 2001 From: KunoiSayami Date: Wed, 26 Oct 2022 00:05:46 +0800 Subject: refactor: Move script out from ng folder Signed-off-by: KunoiSayami --- utils/update-db.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 utils/update-db.py (limited to 'utils/update-db.py') diff --git a/utils/update-db.py b/utils/update-db.py new file mode 100755 index 0000000..acdc8c8 --- /dev/null +++ b/utils/update-db.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +import argparse +import asyncio +import logging +import os +import pathlib +import shutil +import subprocess + + +logger = logging.getLogger() +logger.setLevel(logging.DEBUG) + + +async def add_package(dest: pathlib.Path, pkg_name: str, key: str) -> None: + await ( + await asyncio.create_subprocess_exec( + "repo-add", + str(dest), + pkg_name, + "-s", + "-v", + "-R", + "-k", + key, + stdout=subprocess.STDOUT, + ) + ).wait() + + +async def main(remote_dest: str, repo_base_name: str, sign_key: str) -> None: + cwd = pathlib.Path(os.getcwd()).resolve() + remote_dest = pathlib.Path(remote_dest).resolve() + database_dest = cwd.joinpath(repo_base_name).resolve() + + for file in os.listdir(str(remote_dest)): + logger.debug("Copy file: %s", file) + shutil.copy(str(remote_dest.joinpath(file).joinpath()), str(cwd)) + + for file in os.listdir(str(remote_dest)): + if ".pkg.tar.zst" in file: + await add_package(database_dest, file.split(".pkg.tar.zst")[0], sign_key) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser("update-db.py") + parser.add_argument("cwd") + parser.add_argument("basename") + parser.add_argument("sign_key") + + args_ = parser.parse_args() + + try: + import coloredlogs + + coloredlogs.install( + logging.DEBUG, + fmt="%(asctime)s - %(levelname)s - %(funcName)s - %(lineno)d - %(message)s", + ) + except ModuleNotFoundError: + logging.basicConfig( + level=logging.DEBUG, + format="%(asctime)s - %(levelname)s - %(funcName)s - %(lineno)d - %(message)s", + ) + main(args_.cwd, args_.basename, args_.sign_key) -- cgit v1.3.1