-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsetup.py
More file actions
76 lines (67 loc) · 3.72 KB
/
Copy pathsetup.py
File metadata and controls
76 lines (67 loc) · 3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from setuptools import setup
import os
from glob import glob
from pathlib import Path
package_name = 'ROSNavBench'
def package_files(data_files, directory_list):
paths_dict = {}
for (path, directory) in directory_list:
for (path, directories, filenames) in os.walk(directory):
for filename in filenames:
file_path = os.path.join(path, filename)
install_path = os.path.join('share', package_name, directory, os.path.relpath(file_path, directory))
# Check if the path is already in the dictionary
if install_path in paths_dict:
paths_dict[install_path].append(file_path)
else:
paths_dict[install_path] = [file_path]
for key in paths_dict.keys():
data_files.append((os.path.dirname(key), paths_dict[key]))
return data_files
setup(
name=package_name,
version='0.0.0',
packages=[package_name],
data_files=package_files([
('share/ament_index/resource_index/packages',
['resource/' + package_name]),
('share/' + package_name, ['package.xml']),
(os.path.join('share/' + package_name, 'launch/'), glob('launch/*launch.[pxy][yma]*')),
(os.path.join('share', package_name), glob('rviz/*.rviz')),
(os.path.join('share/' + package_name, 'config/'), glob('./config/*')),
(os.path.join('share/' + package_name, 'script/'), glob('./script/*')),
(os.path.join('share/' + package_name, 'results/'), glob('./results/*')),
(os.path.join('share/' + package_name, 'raw_data/'), glob('./raw_data/*')),
(os.path.join('share/' + package_name, 'simulations/models/block'), glob('simulations/models/block/*')),
# Install turtlebot3_world model files (preserving directory structure)
(os.path.join('share/' + package_name, 'simulations/models/turtlebot3_world'),
[str(p) for p in Path('simulations/models/turtlebot3_world').iterdir() if p.is_file()]),
(os.path.join('share/' + package_name, 'simulations/models/turtlebot3_world/meshes'),
[str(p) for p in Path('simulations/models/turtlebot3_world/meshes').iterdir() if p.is_file()]),
(os.path.join('share/' + package_name, 'simulations/models/turtlebot3_waffle_gz'), glob('simulations/models/turtlebot3_waffle_gz/*')),
(os.path.join('share/' + package_name, 'simulations/maps/'), glob('simulations/maps/*')),
(os.path.join('share/' + package_name, 'simulations/worlds/'), glob('simulations/worlds/*')),
(os.path.join('share/' + package_name, 'simulations/urdf/'), glob('simulations/urdf/*')),
(os.path.join('share/' + package_name, 'example/turtlebot3/nav2_config'), glob('example/turtlebot3/nav2_config/*')),
(os.path.join('share/' + package_name, 'example/turtlebot3/behavior_trees'), glob('example/turtlebot3/behavior_trees/*')),
], [
('share/' + package_name + '/simulations/models/turtlebot3_description/', 'simulations/models/turtlebot3_description/'),
]),
install_requires=['setuptools'],
zip_safe=True,
maintainer='Fatimah-Alahmed',
maintainer_email='falahmed@psu.edu.sa',
description='TODO: Package description',
license='TODO: License declaration',
tests_require=['pytest'],
entry_points={
'console_scripts': [
'follow_path = ROSNavBench.follow_path:main',
'benchmarking_single_controller = ROSNavBench.benchmarking_single_controller:main',
'marker_publisher = ROSNavBench.marker_publisher:main',
'trajectory_generator= ROSNavBench.trajectory_generator:main',
'reset_robot= ROSNavBench.reset_robot:main',
'pdf_generator= ROSNavBench.pdf_generator:main'
],
},
)