From 12851a3bb0d2dea6940651bcd3d0041df27dcc19 Mon Sep 17 00:00:00 2001 From: xunbu Date: Thu, 3 Jul 2025 21:55:22 +0800 Subject: [PATCH] =?UTF-8?q?cli=E6=9B=B4=E6=96=B0=20-p=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=AB=AF=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docutranslate/app.py | 4 ++-- docutranslate/cli.py | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/docutranslate/app.py b/docutranslate/app.py index b5b4b8d..e2356f7 100644 --- a/docutranslate/app.py +++ b/docutranslate/app.py @@ -482,8 +482,8 @@ def find_free_port(start_port): port += 1 # 端口被占用,尝试下一个端口 -def run_app(): - initial_port = 8010 +def run_app(port=8010): + initial_port = port try: # 首先检查初始端口是否可用 port = find_free_port(initial_port) diff --git a/docutranslate/cli.py b/docutranslate/cli.py index cacbeb8..d6c8098 100644 --- a/docutranslate/cli.py +++ b/docutranslate/cli.py @@ -5,7 +5,7 @@ import sys # 用于检查命令行参数数量 def main(): parser = argparse.ArgumentParser( description="DocuTranslate: 一个文档翻译工具。", - epilog="示例: docutranslate -i (启动图形界面)" # epilog 会显示在帮助信息的末尾 + epilog="示例: docutranslate -i (启动图形界面)\ndocutranslate -i -p 8081 (启用端口号8081)" # epilog 会显示在帮助信息的末尾 ) parser.add_argument( "-i", "--interactive", # 添加一个长选项,更友好 @@ -13,6 +13,18 @@ def main(): help="打开图形化用户界面 (GUI)。" ) + parser.add_argument( + "-p", "--port", + type=int, # 指定参数类型(例如整数) + default=8010, # 默认值(可选) + help="指定端口号(默认:8010)。" + ) + + parser.add_argument( + "--version", # 添加一个长选项,更友好 + action="store_true", + help="查看版本号。" + ) # 如果你想在未来添加其他非GUI的命令行功能,可以在这里添加更多参数 # parser.add_argument("input_file", help="要翻译的文件路径", nargs="?") # nargs="?" 使其可选 # parser.add_argument("-l", "--language", help="目标语言") @@ -34,7 +46,10 @@ def main(): # 调用核心逻辑 if args.interactive: # 注意这里是 args.interactive,对应 "--interactive" from docutranslate.app import run_app - run_app() + run_app(port=args.port) + elif args.version: + from docutranslate import __version__ + print(__version__) else: print("提示:若要启动 DocuTranslate 图形界面,请使用 -i 或 --interactive 选项。") print("\n用法示例:") @@ -46,5 +61,6 @@ def main(): # parser.print_help() sys.exit(1) # 以错误码退出,表明命令未按预期执行 + if __name__ == "__main__": main() \ No newline at end of file