Closed christophfroehlich closed 4 months ago
I believe that it's just using simple shell expansion $()
which gets evaluated before running ruby
.
Ok, so might it be that this an effect of launch.actions.ExecuteProcess
, which creates a logger with a name being this command, but the command gets evaluated correctly when actually launching the executable?
At least, it does not make the log files very readable (neither in our CI, nor in log files posted e.g. on stack exchange)
May I ask why there is a need for ruby at all?
May I ask why there is a need for ruby at all?
Ruby is needed because the gz
is written in Ruby (https://github.com/gazebosim/gz-tools/blob/gz-tools2/src/gz.in). It's the tool that aggregates all of the commands available from all the Gazebo libraries. There's an effort to use binary executables (https://github.com/gazebosim/gz-tools/issues/7) for this, but we have a ways to go.
Ok, thanks for the explanation.
How is this supposed to work with ruby?
https://github.com/gazebosim/ros_gz/blob/78dc4823121f085594e6028a93f1e571eb04f58b/ros_gz_sim/launch/gz_sim.launch.py.in#L45-L51
The executable name just remains
ruby $(which gz) sim
, see for example the CI in gz_ros2_control. Is there something missing to be installed?