@@ -817,22 +817,30 @@ def bcasl_list(as_json):
817817 sys .exit (_run_bcasl_headless (["list" ]))
818818
819819 @bcasl .command ("run" )
820- @click .argument ("workspace" , type = click .Path (exists = False ))
820+ @click .argument ("workspace" , required = False , type = click .Path (exists = False ))
821+ @click .option ("-w" , "--workspace" , "workspace_opt" , type = click .Path (exists = False ))
821822 @click .option ("--timeout" , type = float , default = 0.0 )
822- def bcasl_run (workspace , timeout ):
823+ def bcasl_run (workspace , workspace_opt , timeout ):
823824 """Run BCASL pipeline headlessly for one workspace."""
824- args = ["run" , _resolve_workspace_path (workspace ) or workspace ]
825+ selected_workspace = workspace_opt or workspace
826+ if not selected_workspace :
827+ raise click .ClickException ("Missing workspace path for bcasl run" )
828+ args = ["run" , _resolve_workspace_path (selected_workspace ) or selected_workspace ]
825829 if timeout :
826830 args .extend (["--timeout" , str (timeout )])
827831 sys .exit (_run_bcasl_headless (args ))
828832
829833 @bcasl .command ("doctor" )
830834 @click .argument ("workspace" , required = False , type = click .Path (exists = False ))
835+ @click .option ("-w" , "--workspace" , "workspace_opt" , type = click .Path (exists = False ))
831836 @click .option ("--json" , "as_json" , is_flag = True )
832837 @click .option ("--strict" , is_flag = True , help = "Exit non-zero when BCASL checks fail" )
833- def bcasl_doctor (workspace , as_json , strict ):
838+ def bcasl_doctor (workspace , workspace_opt , as_json , strict ):
834839 """Run BCASL diagnostics and optionally enforce strict mode."""
835- payload = bcasl_doctor_payload (workspace = _resolve_workspace_path (workspace ))
840+ selected_workspace = workspace_opt or workspace
841+ payload = bcasl_doctor_payload (
842+ workspace = _resolve_workspace_path (selected_workspace )
843+ )
836844 if as_json :
837845 if strict and any (not check ["ok" ] for check in payload .get ("checks" , [])):
838846 _emit_and_exit (payload , EXIT_PRECHECK_FAILED , as_json = True )
0 commit comments