aboutsummaryrefslogtreecommitdiff
path: root/utils/update-db.py
diff options
context:
space:
mode:
authorKunoiSayami <[email protected]>2022-10-26 00:05:46 +0800
committerKunoiSayami <[email protected]>2022-10-26 00:05:46 +0800
commit685c74c4fa212b132c55be1c91e5b366a3593b83 (patch)
tree25a9aa9024f517ce51107c89e60267fea56f105e /utils/update-db.py
parent596fc2317eae72d006e4c528ac3f14c4d9d712e8 (diff)
refactor: Move script out from ng folder
Signed-off-by: KunoiSayami <[email protected]>
Diffstat (limited to 'utils/update-db.py')
-rwxr-xr-xutils/update-db.py65
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)