Port print arguments -q/-a/-S from main to restructuring.

This commit is contained in:
Oleksandr Kozachuk 2023-09-09 15:38:40 +02:00
parent 7cf62c54ef
commit d22877a0f1
2 changed files with 13 additions and 3 deletions

View File

@ -13,7 +13,15 @@ def print_cmd(args: argparse.Namespace, config: Config) -> None:
try:
message = Message.from_file(fname)
if message:
print(message.to_str(source_code_only=args.source_code_only))
if args.question:
print(message.question)
elif args.answer:
print(message.answer)
elif message.answer and args.only_source_code:
for code in message.answer.source_code():
print(code)
else:
print(message.to_str())
except MessageError:
print(f"File is not a valid message: {args.file}")
sys.exit(1)

View File

@ -113,8 +113,10 @@ def create_parser() -> argparse.ArgumentParser:
aliases=['p'])
print_cmd_parser.set_defaults(func=print_cmd)
print_cmd_parser.add_argument('-f', '--file', help='File to print', required=True)
print_cmd_parser.add_argument('-S', '--source-code-only', help='Print source code only (from the answer, if available)',
action='store_true')
print_cmd_modes = print_cmd_parser.add_mutually_exclusive_group()
print_cmd_modes.add_argument('-q', '--question', help='Print only question', action='store_true')
print_cmd_modes.add_argument('-a', '--answer', help='Print only answer', action='store_true')
print_cmd_modes.add_argument('-S', '--only-source-code', help='Print only source code', action='store_true')
argcomplete.autocomplete(parser)
return parser