aboutsummaryrefslogtreecommitdiff
path: root/utils/pkgman.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/pkgman.py')
-rwxr-xr-xutils/pkgman.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/utils/pkgman.py b/utils/pkgman.py
new file mode 100755
index 0000000..b59ad73
--- /dev/null
+++ b/utils/pkgman.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+import argparse
+import asyncio
+import os
+import pathlib
+
+try:
+ import pkgbuild
+except ModuleNotFoundError:
+ import utils.pkgbuild as pkgbuild
+
+
+async def fetch_and_get(_remote_addr: str):
+ raise NotImplementedError("TODO!")
+
+
+async def main(args: argparse.Namespace):
+ if args.sub == "show":
+ print(pkgbuild.fetch_database(args.database))
+ elif args.sub == "show_local":
+ pkg_dir = pathlib.Path(os.getcwd()).joinpath(args.path).resolve()
+ for packages in await pkgbuild.fetch_packages_from_directory(pkg_dir):
+ print(packages.result())
+ elif args.sub == "show_internet":
+ await fetch_and_get(args.database)
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser('pkgman.py')
+ sub = parser.add_subparsers(title="subcommand", dest="sub")
+ decmp_parser = sub.add_parser("show", description="Show databases")
+ decmp_parser.add_argument("database")
+
+ local_show_parser = sub.add_parser("show_local")
+ local_show_parser.add_argument("path", default="./repo")
+
+ decmp_online_parser = sub.add_parser("show_internet", description="Show remote databases")
+ decmp_online_parser.add_argument("database")
+
+ args_ = parser.parse_args()
+ asyncio.run(main(args_))
+