28 lines
800 B
Python
28 lines
800 B
Python
import sys
|
|
import argparse
|
|
from pathlib import Path
|
|
from ..configuration import Config
|
|
from ..message import Message, MessageError
|
|
|
|
|
|
def print_cmd(args: argparse.Namespace, config: Config) -> None:
|
|
"""
|
|
Handler for the 'print' command.
|
|
"""
|
|
fname = Path(args.file)
|
|
try:
|
|
message = Message.from_file(fname)
|
|
if message:
|
|
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)
|