@@ -133,15 +133,7 @@ def _sleep_forever() -> None:
133133 time .sleep (3600 )
134134
135135
136- def _build_parser () -> argparse .ArgumentParser :
137- parser = argparse .ArgumentParser (prog = "automation_file" )
138- parser .add_argument ("-e" , "--execute_file" , help = "path to an action JSON file" )
139- parser .add_argument ("-d" , "--execute_dir" , help = "directory containing action JSON files" )
140- parser .add_argument ("-c" , "--create_project" , help = "scaffold a project at this path" )
141- parser .add_argument ("--execute_str" , help = "JSON action list as a string" )
142-
143- subparsers = parser .add_subparsers (dest = "command" )
144-
136+ def _add_zip_commands (subparsers : argparse ._SubParsersAction ) -> None :
145137 zip_parser = subparsers .add_parser ("zip" , help = "zip a file or directory" )
146138 zip_parser .add_argument ("source" )
147139 zip_parser .add_argument ("target" )
@@ -159,6 +151,8 @@ def _build_parser() -> argparse.ArgumentParser:
159151 unzip_parser .add_argument ("--password" , default = None )
160152 unzip_parser .set_defaults (handler = _cmd_unzip )
161153
154+
155+ def _add_file_commands (subparsers : argparse ._SubParsersAction ) -> None :
162156 download_parser = subparsers .add_parser ("download" , help = "SSRF-validated HTTP download" )
163157 download_parser .add_argument ("url" )
164158 download_parser .add_argument ("output" )
@@ -169,6 +163,8 @@ def _build_parser() -> argparse.ArgumentParser:
169163 touch_parser .add_argument ("--content" , default = "" )
170164 touch_parser .set_defaults (handler = _cmd_create_file )
171165
166+
167+ def _add_server_commands (subparsers : argparse ._SubParsersAction ) -> None :
172168 server_parser = subparsers .add_parser ("server" , help = "run the TCP action server" )
173169 server_parser .add_argument ("--host" , default = "localhost" )
174170 server_parser .add_argument ("--port" , type = int , default = 9943 )
@@ -183,6 +179,8 @@ def _build_parser() -> argparse.ArgumentParser:
183179 http_parser .add_argument ("--shared-secret" , default = None )
184180 http_parser .set_defaults (handler = _cmd_http_server )
185181
182+
183+ def _add_integration_commands (subparsers : argparse ._SubParsersAction ) -> None :
186184 ui_parser = subparsers .add_parser ("ui" , help = "launch the PySide6 GUI" )
187185 ui_parser .set_defaults (handler = _cmd_ui )
188186
@@ -206,6 +204,19 @@ def _build_parser() -> argparse.ArgumentParser:
206204 drive_parser .add_argument ("--name" , default = None )
207205 drive_parser .set_defaults (handler = _cmd_drive_upload )
208206
207+
208+ def _build_parser () -> argparse .ArgumentParser :
209+ parser = argparse .ArgumentParser (prog = "automation_file" )
210+ parser .add_argument ("-e" , "--execute_file" , help = "path to an action JSON file" )
211+ parser .add_argument ("-d" , "--execute_dir" , help = "directory containing action JSON files" )
212+ parser .add_argument ("-c" , "--create_project" , help = "scaffold a project at this path" )
213+ parser .add_argument ("--execute_str" , help = "JSON action list as a string" )
214+
215+ subparsers = parser .add_subparsers (dest = "command" )
216+ _add_zip_commands (subparsers )
217+ _add_file_commands (subparsers )
218+ _add_server_commands (subparsers )
219+ _add_integration_commands (subparsers )
209220 return parser
210221
211222
0 commit comments