Add command & subcommand for JacoVirt via argparse

* Command `jacovirt`
* Sub command `jacovirt pad`
* Sub command `jacovirt bot`

close #20
This commit is contained in:
HS-157 2024-04-24 23:47:24 +02:00
parent ed319f0a2e
commit e31eec876a
3 changed files with 58 additions and 3 deletions

56
jacovirt/jacovirt/args.py Normal file
View File

@ -0,0 +1,56 @@
import argparse
import logging
import jacovirt.logger
log_level = {
"CRITICAL": logging.CRITICAL,
"ERROR": logging.ERROR,
"WARN": logging.WARNING,
"INFO": logging.INFO,
"DEBUG": logging.DEBUG,
}
def main():
# General parser
parser = argparse.ArgumentParser(description=__doc__)
# Subparser
sub = parser.add_subparsers(dest="sub")
parser.add_argument(
"-l",
"--log",
choices=log_level.keys(),
default="WARN",
help=("Set level log"),
dest="log",
)
# Parser for JacoVirt Pad
pad = sub.add_parser("pad", help="Run JacoVirt Pad")
# Parser for JacoVirt Bot
bot = sub.add_parser("bot", help="Run JacoVirt Bot")
args = parser.parse_args()
if args.sub is None:
parser.print_help()
exit(1)
logging.getLogger().setLevel(args.log)
match args.sub:
case "pad":
logging.info("Lunch JacoVirt Pad")
from jacovirt.pad import window
window.main()
case "bot":
logging.info("Lunch JacoVirt Bot")
from jacovirt.bot import window
window.main()
case _:
SystemExit

View File

@ -1,4 +1,4 @@
import logging
# Logger config
logging.basicConfig(format="%(asctime)s %(levelname)s %(message)s", datefmt='%m/%d/%Y %H:%M:%S', level=logging.INFO)
logging.basicConfig(format="%(asctime)s %(levelname)s %(message)s", datefmt='%m/%d/%Y %H:%M:%S')

View File

@ -17,8 +17,7 @@ requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.scripts]
jacovirt-bot = "jacovirt.bot.window:main"
jacovirt-pad = "jacovirt.pad.window:main"
jacovirt = "jacovirt.args:main"
[[tool.poetry.include]]
path = "jacovirt/jacovirt/Img/*"