@@ -578,17 +578,6 @@ async def __execute_process(self, context: LaunchContext) -> None:
578578 raise RuntimeError ('process_event_args unexpectedly None' )
579579
580580 cmd = process_event_args ['cmd' ]
581- if evaluate_condition_expression (context , self .__split_arguments ):
582- if self .__shell :
583- self .__logger .debug ("Ignoring 'split_arguments=True' because 'shell=True'." )
584- else :
585- self .__logger .debug ("Splitting arguments because 'split_arguments=True'." )
586- expanded_cmd = []
587- for token in cmd :
588- expanded_cmd .extend (shlex .split (token ))
589- cmd = expanded_cmd
590- # Also update process_event_args so they reflect the splitting.
591- process_event_args ['cmd' ] = cmd
592581 cwd = process_event_args ['cwd' ]
593582 env = process_event_args ['env' ]
594583 if self .__log_cmd :
@@ -759,6 +748,18 @@ def execute(self, context: LaunchContext) -> Optional[List[LaunchDescriptionEnti
759748 else :
760749 self .__stdout_logger , self .__stderr_logger = \
761750 launch .logging .get_output_loggers (name , self .__output )
751+ # Update the cmd to respect split_arguments option.
752+ if evaluate_condition_expression (context , self .__split_arguments ):
753+ if self .__shell :
754+ self .__logger .debug ("Ignoring 'split_arguments=True' because 'shell=True'." )
755+ else :
756+ self .__logger .debug ("Splitting arguments because 'split_arguments=True'." )
757+ expanded_cmd = []
758+ assert self .__process_event_args is not None
759+ for token in self .__process_event_args ['cmd' ]:
760+ expanded_cmd .extend (shlex .split (token ))
761+ # Also update self.__process_event_args['cmd'] so it reflects the splitting.
762+ self .__process_event_args ['cmd' ] = expanded_cmd
762763 context .asyncio_loop .create_task (self .__execute_process (context ))
763764 except Exception :
764765 for event_handler in event_handlers :
0 commit comments