From 942840f8f420960d7903431370c0a3a8f9aca25a Mon Sep 17 00:00:00 2001 From: ipa-nhg Date: Tue, 12 Dec 2023 11:42:12 +0100 Subject: [PATCH] Add the installation from source for not released repositories --- .../generator/GeneratorHelpers.xtend | 26 ++++++++++++++++++- .../rossystem/generator/READMECompiler.xtend | 11 ++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/plugins/de.fraunhofer.ipa.rossystem.xtext/src/de/fraunhofer/ipa/rossystem/generator/GeneratorHelpers.xtend b/plugins/de.fraunhofer.ipa.rossystem.xtext/src/de/fraunhofer/ipa/rossystem/generator/GeneratorHelpers.xtend index 05c57251..86c8c6b8 100644 --- a/plugins/de.fraunhofer.ipa.rossystem.xtext/src/de/fraunhofer/ipa/rossystem/generator/GeneratorHelpers.xtend +++ b/plugins/de.fraunhofer.ipa.rossystem.xtext/src/de/fraunhofer/ipa/rossystem/generator/GeneratorHelpers.xtend @@ -16,7 +16,7 @@ import org.eclipse.emf.ecore.EObject import java.util.Set import java.util.HashSet import ros.Dependency -import ros.PackageDependency +import ros.Package import system.Component import system.RosNode import ros.impl.AmentPackageImpl @@ -29,6 +29,8 @@ class GeneratorHelpers { AmentPackageImpl package_impl List PkgsList + ArrayList RepoList + String Pkg RosNode node String[] FromFileInfo @@ -57,6 +59,28 @@ class GeneratorHelpers { } return subSystemsList } + + def ArrayList getAllRepos(System system) { + RepoList = new ArrayList() + for (node : getNodes(system)){ + if (!((node.from.eContainer.eContainer as Package).fromGitRepo.nullOrEmpty)) { + val repo=(node.from.eContainer.eContainer as Package).fromGitRepo + if (repo.contains(":")){ + if (repo.split(":",2).get(1).contains(":")){ + RepoList.add(repo.split(":",3).get(0)+":"+repo.split(":",3).get(1)+" -b "+repo.split(":",3).get(2)) + } else { + RepoList.add(repo) + } + } + } + } + if (!system.subsystems.nullOrEmpty){ + for (subsystem:system.subsystems) { + RepoList.addAll(getAllRepos(subsystem)) + } + } + return RepoList; + } def getPkgsDependencies (System rossystem){ PkgsList = new ArrayList() diff --git a/plugins/de.fraunhofer.ipa.rossystem.xtext/src/de/fraunhofer/ipa/rossystem/generator/READMECompiler.xtend b/plugins/de.fraunhofer.ipa.rossystem.xtext/src/de/fraunhofer/ipa/rossystem/generator/READMECompiler.xtend index 06c8a0ad..a379e2e0 100644 --- a/plugins/de.fraunhofer.ipa.rossystem.xtext/src/de/fraunhofer/ipa/rossystem/generator/READMECompiler.xtend +++ b/plugins/de.fraunhofer.ipa.rossystem.xtext/src/de/fraunhofer/ipa/rossystem/generator/READMECompiler.xtend @@ -66,6 +66,17 @@ sudo apt install ros-ROSDISTRO-«system.fromFile.split("/",2).get(0).replace("_" «ENDIF» +«IF !getAllRepos(system).empty» +### From source code +``` +mkdir -p ros2_ws/src +cd ros2_ws/ +«FOR repo:getAllRepos(system)»git clone «repo»«ENDFOR» +rosdep install --from-path src/ -i -y +colcon build +source install/setup.bash +``` +«ENDIF» ## Usage