|
4 | 4 | import os |
5 | 5 | from typing import Sequence |
6 | 6 |
|
| 7 | +from ai_commit_msg.cli.help_ai_handler import help_ai_handler |
7 | 8 | from ai_commit_msg.cli.summary_handler import summary_handler |
8 | 9 | from ai_commit_msg.cli.config_handler import config_handler, handle_config_setup |
9 | 10 | from ai_commit_msg.cli.gen_ai_commit_message_handler import ( |
@@ -88,6 +89,13 @@ def main(argv: Sequence[str] = sys.argv[1:]) -> int: |
88 | 89 | # Help command |
89 | 90 | subparsers.add_parser("help", help="Display this help message") |
90 | 91 |
|
| 92 | + help_ai_parser = subparsers.add_parser( |
| 93 | + "help-ai", help="🤖 Get help from AI to find the right command for you" |
| 94 | + ) |
| 95 | + help_ai_parser.add_argument( |
| 96 | + "message", nargs=argparse.REMAINDER, help="Additional message for help" |
| 97 | + ) |
| 98 | + |
91 | 99 | # Hook command |
92 | 100 | hook_parser = subparsers.add_parser( |
93 | 101 | "hook", help="🪝 Run the prepare-commit-msg hook to generate commit messages" |
@@ -132,10 +140,20 @@ def main(argv: Sequence[str] = sys.argv[1:]) -> int: |
132 | 140 |
|
133 | 141 | args = parser.parse_args(argv) |
134 | 142 |
|
| 143 | + def get_full_help_menu(): |
| 144 | + full_help_menu = "\nAvailable commands:\n" |
| 145 | + for name, subparser in subparsers.choices.items(): |
| 146 | + full_help_menu += f"\n{name}:\n" |
| 147 | + full_help_menu += subparser.format_help() |
| 148 | + |
| 149 | + return full_help_menu |
| 150 | + |
135 | 151 | if args.command == "config": |
136 | 152 | config_handler(args) |
137 | 153 | elif args.command == "help": |
138 | | - parser.print_help() |
| 154 | + print(get_full_help_menu()) |
| 155 | + elif args.command == "help-ai": |
| 156 | + help_ai_handler(args, help_menu=get_full_help_menu()) |
139 | 157 | elif args.command == "hook": |
140 | 158 | hook_handler(args) |
141 | 159 | elif args.command == "summarize" or args.command == "summary": |
|
0 commit comments