CLI entry in cli/main.py
This commit is contained in:
@@ -1,86 +1,4 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
import argparse
|
||||
import sys
|
||||
from molodetz.cli.main import build_parser, main
|
||||
|
||||
from molodetz.cli import commands
|
||||
|
||||
|
||||
def build_parser():
|
||||
parser = argparse.ArgumentParser(prog="molodetz", description="Beheer-CLI voor Molodetz.")
|
||||
groups = parser.add_subparsers(dest="group", required=True)
|
||||
|
||||
role = groups.add_parser("role", help="Rollen lezen en zetten").add_subparsers(dest="action", required=True)
|
||||
role_get = role.add_parser("get")
|
||||
role_get.add_argument("username")
|
||||
role_get.set_defaults(handler=commands.role_get)
|
||||
role_set = role.add_parser("set")
|
||||
role_set.add_argument("username")
|
||||
role_set.add_argument("role", choices=["Member", "Admin"])
|
||||
role_set.set_defaults(handler=commands.role_set)
|
||||
|
||||
apikey = groups.add_parser("apikey", help="API-sleutels").add_subparsers(dest="action", required=True)
|
||||
key_get = apikey.add_parser("get")
|
||||
key_get.add_argument("username")
|
||||
key_get.set_defaults(handler=commands.apikey_get)
|
||||
key_reset = apikey.add_parser("reset")
|
||||
key_reset.add_argument("username")
|
||||
key_reset.set_defaults(handler=commands.apikey_reset)
|
||||
apikey.add_parser("backfill").set_defaults(handler=commands.apikey_backfill)
|
||||
|
||||
posts = groups.add_parser("posts", help="Berichten").add_subparsers(dest="action", required=True)
|
||||
posts.add_parser("list").set_defaults(handler=commands.posts_list)
|
||||
posts_import = posts.add_parser("import", help="Importeer .md of .pdf als concept")
|
||||
posts_import.add_argument("path")
|
||||
posts_import.add_argument("--topic", default="rol", choices=["rol", "standaard"])
|
||||
posts_import.add_argument("--title")
|
||||
posts_import.add_argument("--publish", action="store_true")
|
||||
posts_import.set_defaults(handler=commands.posts_import)
|
||||
|
||||
joins = groups.add_parser("joins", help="Aanmeldingen").add_subparsers(dest="action", required=True)
|
||||
joins.add_parser("list").set_defaults(handler=commands.joins_list)
|
||||
|
||||
backups = groups.add_parser("backups", help="Back-ups").add_subparsers(dest="action", required=True)
|
||||
backups.add_parser("list").set_defaults(handler=commands.backups_list)
|
||||
backup_run = backups.add_parser("run")
|
||||
backup_run.add_argument("--target", default="database", choices=["database", "uploads", "keys", "full"])
|
||||
backup_run.add_argument("--codec", default="zstd", choices=["zstd", "brotli"])
|
||||
backup_run.set_defaults(handler=commands.backups_run)
|
||||
backup_prune = backups.add_parser("prune")
|
||||
backup_prune.add_argument("--keep", type=int, default=14)
|
||||
backup_prune.add_argument("--dry-run", action="store_true")
|
||||
backup_prune.set_defaults(handler=commands.backups_prune)
|
||||
backup_clear = backups.add_parser("clear")
|
||||
backup_clear.add_argument("--dry-run", action="store_true")
|
||||
backup_clear.set_defaults(handler=commands.backups_clear)
|
||||
|
||||
sessions = groups.add_parser("sessions", help="Sessies").add_subparsers(dest="action", required=True)
|
||||
sessions_prune = sessions.add_parser("prune")
|
||||
sessions_prune.add_argument("--dry-run", action="store_true")
|
||||
sessions_prune.set_defaults(handler=commands.sessions_prune)
|
||||
|
||||
audit = groups.add_parser("audit", help="Auditlog").add_subparsers(dest="action", required=True)
|
||||
audit_prune = audit.add_parser("prune")
|
||||
audit_prune.add_argument("--days", type=int, default=365)
|
||||
audit_prune.add_argument("--dry-run", action="store_true")
|
||||
audit_prune.set_defaults(handler=commands.audit_prune)
|
||||
|
||||
system = groups.add_parser("system", help="Systeemonderhoud").add_subparsers(dest="action", required=True)
|
||||
system_prune = system.add_parser("prune", help="Verwijder wees-blobs")
|
||||
system_prune.add_argument("--dry-run", action="store_true")
|
||||
system_prune.set_defaults(handler=commands.system_prune)
|
||||
system.add_parser("sql-lint", help="Parse alle SQL-literals met sqlglot").set_defaults(handler=commands.system_sql_lint)
|
||||
|
||||
emoji = groups.add_parser("emoji", help="Emoji-kaart").add_subparsers(dest="action", required=True)
|
||||
emoji.add_parser("regenerate").set_defaults(handler=commands.emoji_regenerate)
|
||||
return parser
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
parser = build_parser()
|
||||
args = parser.parse_args(argv)
|
||||
commands.prepare()
|
||||
return args.handler(args) or 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
__all__ = ["build_parser", "main"]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
import sys
|
||||
|
||||
from molodetz.cli import main
|
||||
from molodetz.cli.main import main
|
||||
|
||||
sys.exit(main())
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
import argparse
|
||||
import sys
|
||||
|
||||
from molodetz.cli import commands
|
||||
|
||||
|
||||
def build_parser():
|
||||
parser = argparse.ArgumentParser(prog="molodetz", description="Beheer-CLI voor Molodetz.")
|
||||
groups = parser.add_subparsers(dest="group", required=True)
|
||||
|
||||
role = groups.add_parser("role", help="Rollen lezen en zetten").add_subparsers(dest="action", required=True)
|
||||
role_get = role.add_parser("get")
|
||||
role_get.add_argument("username")
|
||||
role_get.set_defaults(handler=commands.role_get)
|
||||
role_set = role.add_parser("set")
|
||||
role_set.add_argument("username")
|
||||
role_set.add_argument("role", choices=["Member", "Admin"])
|
||||
role_set.set_defaults(handler=commands.role_set)
|
||||
|
||||
apikey = groups.add_parser("apikey", help="API-sleutels").add_subparsers(dest="action", required=True)
|
||||
key_get = apikey.add_parser("get")
|
||||
key_get.add_argument("username")
|
||||
key_get.set_defaults(handler=commands.apikey_get)
|
||||
key_reset = apikey.add_parser("reset")
|
||||
key_reset.add_argument("username")
|
||||
key_reset.set_defaults(handler=commands.apikey_reset)
|
||||
apikey.add_parser("backfill").set_defaults(handler=commands.apikey_backfill)
|
||||
|
||||
posts = groups.add_parser("posts", help="Berichten").add_subparsers(dest="action", required=True)
|
||||
posts.add_parser("list").set_defaults(handler=commands.posts_list)
|
||||
posts_import = posts.add_parser("import", help="Importeer .md of .pdf als concept")
|
||||
posts_import.add_argument("path")
|
||||
posts_import.add_argument("--topic", default="rol", choices=["rol", "standaard"])
|
||||
posts_import.add_argument("--title")
|
||||
posts_import.add_argument("--publish", action="store_true")
|
||||
posts_import.set_defaults(handler=commands.posts_import)
|
||||
|
||||
joins = groups.add_parser("joins", help="Aanmeldingen").add_subparsers(dest="action", required=True)
|
||||
joins.add_parser("list").set_defaults(handler=commands.joins_list)
|
||||
|
||||
backups = groups.add_parser("backups", help="Back-ups").add_subparsers(dest="action", required=True)
|
||||
backups.add_parser("list").set_defaults(handler=commands.backups_list)
|
||||
backup_run = backups.add_parser("run")
|
||||
backup_run.add_argument("--target", default="database", choices=["database", "uploads", "keys", "full"])
|
||||
backup_run.add_argument("--codec", default="zstd", choices=["zstd", "brotli"])
|
||||
backup_run.set_defaults(handler=commands.backups_run)
|
||||
backup_prune = backups.add_parser("prune")
|
||||
backup_prune.add_argument("--keep", type=int, default=14)
|
||||
backup_prune.add_argument("--dry-run", action="store_true")
|
||||
backup_prune.set_defaults(handler=commands.backups_prune)
|
||||
backup_clear = backups.add_parser("clear")
|
||||
backup_clear.add_argument("--dry-run", action="store_true")
|
||||
backup_clear.set_defaults(handler=commands.backups_clear)
|
||||
|
||||
sessions = groups.add_parser("sessions", help="Sessies").add_subparsers(dest="action", required=True)
|
||||
sessions_prune = sessions.add_parser("prune")
|
||||
sessions_prune.add_argument("--dry-run", action="store_true")
|
||||
sessions_prune.set_defaults(handler=commands.sessions_prune)
|
||||
|
||||
audit = groups.add_parser("audit", help="Auditlog").add_subparsers(dest="action", required=True)
|
||||
audit_prune = audit.add_parser("prune")
|
||||
audit_prune.add_argument("--days", type=int, default=365)
|
||||
audit_prune.add_argument("--dry-run", action="store_true")
|
||||
audit_prune.set_defaults(handler=commands.audit_prune)
|
||||
|
||||
system = groups.add_parser("system", help="Systeemonderhoud").add_subparsers(dest="action", required=True)
|
||||
system_prune = system.add_parser("prune", help="Verwijder wees-blobs")
|
||||
system_prune.add_argument("--dry-run", action="store_true")
|
||||
system_prune.set_defaults(handler=commands.system_prune)
|
||||
system.add_parser("sql-lint", help="Parse alle SQL-literals met sqlglot").set_defaults(handler=commands.system_sql_lint)
|
||||
|
||||
emoji = groups.add_parser("emoji", help="Emoji-kaart").add_subparsers(dest="action", required=True)
|
||||
emoji.add_parser("regenerate").set_defaults(handler=commands.emoji_regenerate)
|
||||
return parser
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
parser = build_parser()
|
||||
args = parser.parse_args(argv)
|
||||
commands.prepare()
|
||||
return args.handler(args) or 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
+2
-2
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "molodetz"
|
||||
version = "1.0.0"
|
||||
version = "1.0.1"
|
||||
description = "Molodetz, a calm community blog roll."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
@@ -47,7 +47,7 @@ dev = [
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
molodetz = "molodetz.cli:main"
|
||||
molodetz = "molodetz.cli.main:main"
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
include = ["molodetz*"]
|
||||
|
||||
Reference in New Issue
Block a user