From 76fbeaf472fb9267e5d4fd3cc4746690c63c2059 Mon Sep 17 00:00:00 2001 From: Chris Iverach-Brereton Date: Mon, 9 Sep 2024 14:49:23 -0400 Subject: [PATCH] Improve workspace fallback --- robot_upstart/job.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/robot_upstart/job.py b/robot_upstart/job.py index 73b1e16..790aad2 100644 --- a/robot_upstart/job.py +++ b/robot_upstart/job.py @@ -82,13 +82,18 @@ def __init__(self, name="ros", rmw=None, rmw_config=None, interface=None, # Fall back on current user as the user to run ROS as. self.user = user or getpass.getuser() - # Fall back on current workspace setup file if not explicitly specified. - self.workspace_setup = workspace_setup or \ - os.environ['CMAKE_PREFIX_PATH'].split(':')[0] + '/../setup.bash' - # Fall back on current distro if not otherwise specified. self.rosdistro = rosdistro or os.environ['ROS_DISTRO'] + # Prioritize specified workspace, falling back to current workspace if possible, or + # system workspace as a last-resort + if workspace_setup: + self.workspace_setup = workspace_setup + elif 'CMAKE_PREFIX_PATH' in os.environ.keys(): + self.workspace_setup = os.environ['CMAKE_PREFIX_PATH'].split(':')[0] + '/../setup.bash' + else: + self.workspace_setup = f'/opt/ros/{self.rosdistro}/setup.bash' + self.rmw = rmw or "rmw_fastrtps_cpp" self.rmw_config = rmw_config or ""