|
17 | 17 | from pathlib import Path
|
18 | 18 | from ros2model.core.generator.generator_core import GeneratorCore
|
19 | 19 | import ros2model.core.metamodels.metamodel_ros as ROSModel
|
20 |
| -import logging |
21 |
| -from devtools import pprint |
22 | 20 |
|
23 |
| -Template_Folder = Path(__file__).parent.resolve() / "templates" |
| 21 | +Template_Folder = Path(__file__).parent.parent.parent.parent.resolve() / "templates" |
24 | 22 | Template = Path(Template_Folder / "message.ros.j2")
|
25 | 23 |
|
| 24 | +try: |
| 25 | + from ament_index_python import get_package_share_directory |
| 26 | + |
| 27 | + Template_Folder_ROS = Path(get_package_share_directory("ros2model") + "/templates") |
| 28 | + Template_ROS = Path(Template_Folder_ROS / "component.ros2.j2") |
| 29 | +except ImportError: |
| 30 | + Template_ROS = None |
| 31 | + |
26 | 32 |
|
27 | 33 | class MessageGenerator(GeneratorCore):
|
28 | 34 | def __init__(self, template_path=None) -> None:
|
29 | 35 | if template_path != None:
|
30 | 36 | self.template_path = Path(template_path).resolve()
|
31 |
| - else: |
| 37 | + elif Template_ROS != None and Template_ROS.is_file(): |
32 | 38 | self.template_path = Template
|
| 39 | + elif Template.is_file(): |
| 40 | + self.template_path = Template |
| 41 | + else: |
| 42 | + if Template_ROS != None: |
| 43 | + raise FileNotFoundError( |
| 44 | + f"Can't find template either from {Template.absolute().as_posix()} or {Template_ROS.absolute().as_posix()}" |
| 45 | + ) |
| 46 | + else: |
| 47 | + raise FileNotFoundError( |
| 48 | + f"Can't find template either from {Template.absolute().as_posix()}" |
| 49 | + ) |
33 | 50 | super().__init__(self.template_path, ".ros")
|
34 | 51 |
|
35 | 52 | def generate_a_package(self, rosmodel: ROSModel.Package, output_dir: str):
|
|
0 commit comments