diff --git a/pyproject.toml b/pyproject.toml index b2a32db..97eedad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,4 +25,4 @@ Homepage = "https://github.com/gmbrax/Pilgrim/" Issues = "https://github.com/gmbrax/Pilgrim/issues" [project.scripts] -pilgrim = "epstein.command:main" \ No newline at end of file +epstein = "epstein.command:main" \ No newline at end of file diff --git a/src/epstein/application.py b/src/epstein/application.py index e69de29..78d1220 100644 --- a/src/epstein/application.py +++ b/src/epstein/application.py @@ -0,0 +1,50 @@ +import argparse +import sys + +class Application: + def __init__(self): + self.args = self.__setup_args + + @property + def __setup_args(self): + parser = argparse.ArgumentParser(prog="epstein", + description='Test for PDF Export Module for pilgrim') + + subparsers = parser.add_subparsers(dest="command",required=True) + print_parser = subparsers.add_parser("print", help="generate the PDF file ") + print_parser.add_argument("-t", "--theme", required=True, help="Define the theme to use.") + print_parser.set_defaults(func=self.handle_print) + + + theme_parser = subparsers.add_parser("theme", help="Manage the themes") + theme_subparsers = theme_parser.add_subparsers(dest="theme_action", help="Actions for the themes" , required=True) + + theme_create_parser = theme_subparsers.add_parser("create", help="Create a new theme") + theme_create_parser.add_argument("-n", "--name", required=True, help="Name of the theme") + theme_create_parser.set_defaults(func=self.handle_theme_create) + + theme_list_parser = theme_subparsers.add_parser("list", help="List all the themes") + theme_list_parser.set_defaults(func=self.handle_theme_list) + + if len(sys.argv) == 2 and sys.argv[1] == 'theme': + theme_parser.print_help(sys.stderr) + sys.exit(1) + + if len(sys.argv) == 1: + parser.print_help(sys.stderr) + sys.exit(1) + + return parser.parse_args() + + def handle_print(self): + print("handle print") + + def handle_theme_create(self): + print("handle theme create") + + def handle_theme_list(self): + print("handle theme list") + + def run(self): + self.args.func() + \ No newline at end of file diff --git a/src/epstein/command.py b/src/epstein/command.py index afee10b..f23e602 100644 --- a/src/epstein/command.py +++ b/src/epstein/command.py @@ -1,7 +1,11 @@ -from epstein.application import * +import argparse + +from epstein.application import Application def main(): print("hello world") + app = Application() + app.run() if __name__ =="__main__": main()