diff options
| author | KunoiSayami <[email protected]> | 2022-10-26 00:05:46 +0800 |
|---|---|---|
| committer | KunoiSayami <[email protected]> | 2022-10-26 00:05:46 +0800 |
| commit | 685c74c4fa212b132c55be1c91e5b366a3593b83 (patch) | |
| tree | 25a9aa9024f517ce51107c89e60267fea56f105e /utils/update-db.py | |
| parent | 596fc2317eae72d006e4c528ac3f14c4d9d712e8 (diff) | |
refactor: Move script out from ng folder
Signed-off-by: KunoiSayami <[email protected]>
Diffstat (limited to 'utils/update-db.py')
| -rwxr-xr-x | utils/update-db.py | 65 |
1 files changed, 65 insertions, 0 deletions
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) |
