1 from __future__
import print_function
7 ROS_CACHE_TIMEOUT_ENV_NAME =
'ROS_CACHE_TIMEOUT' 8 ROS_LOCATIONS_ENV_NAME =
'ROS_LOCATIONS' 10 ERROR_PREFIX =
'Error: ' 14 ros_location = os.environ.get(ROS_LOCATIONS_ENV_NAME)
15 if ros_location
is not None:
16 locations = ros_location.split(ROS_LOCATION_SEP)
20 if package_name == loc[:index]:
21 return 0, loc[index + 1:]
23 if package_name ==
'log':
24 p = subprocess.Popen(
'roslaunch-logs', stdout=subprocess.PIPE)
25 result_location = p.communicate()[0].strip()
26 result_code = p.returncode
27 return result_code, result_location
if result_code == 0
else '' 29 if package_name ==
'test_results':
30 p = subprocess.Popen(
'rosrun.bat rosunit test_results_dir.py', stdout=subprocess.PIPE)
31 result_location = p.communicate()[0].strip()
32 result_code = p.returncode
33 return result_code, result_location
if result_code == 0
else '' 37 env[ROS_CACHE_TIMEOUT_ENV_NAME] =
'-1.0' 38 p = subprocess.Popen([
'rospack',
'find', package_name], stdout=subprocess.PIPE)
39 result_location = p.communicate()[0].strip()
40 result_code = p.returncode
42 return result_code, result_location
44 p = subprocess.Popen([
'rosstack',
'find', package_name], stdout=subprocess.PIPE)
45 result_location = p.communicate()[0].strip()
46 result_code = p.returncode
48 return result_code, result_location
51 return result_code,
'' 58 parameters = os.path.normpath(argv[0]).split(os.path.sep)
59 package_name = parameters[0]
60 if len(parameters) > 1:
61 reldir = os.path.sep.join(parameters[1:])
63 if len(argv) < 2
or argv[1] !=
'forceeval':
64 print(ERROR_PREFIX +
'[' + package_name +
'] is not a valid argument!', file=sys.stderr)
69 print(ERROR_PREFIX +
'[' + package_name +
'] not found!', file=sys.stderr)
72 rosdir = os.path.normpath(os.path.sep.join([package_dir, reldir]))
76 if __name__ ==
'__main__':
def ros_location_find(package_name)