Beispiel #1
0
    def what_needs(self, rosdep_args):
        packages = []
        rospack = rospkg.RosPack()
        for p in rospack.list():
            rosdeps_needed = self.get_rosdep0(p)
            matches = [r for r in rosdep_args if r in rosdeps_needed]
            for r in matches:
                packages.append(p)

        return packages
Beispiel #2
0
    def where_defined(self, rosdeps):
        output = ""
        locations = {}

        for r in rosdeps:
            locations[r] = set()

        rospack = rospkg.RosPack()

        path = os.path.join(rospkg.get_ros_home(), "rosdep.yaml")
        rosdep_dict = self.yc.get_specific_rosdeps(path)
        for r in rosdeps:
            if r in rosdep_dict:
                locations[r].add("Override:" + path)

        for p in rospack.list():
            path = os.path.join(rospack.get_path(p), "rosdep.yaml")
            rosdep_dict = self.yc.get_specific_rosdeps(path)
            for r in rosdeps:
                if r in rosdep_dict:
                    addendum = ""
                    if rospack.stack_of(p):
                        addendum = "<<Unused due to package '%s' being in a stack.]]" % p
                    locations[r].add(">>" + path + addendum)

        rosstack = rospkg.RosStack()
        for s in rosstack.list():
            path = os.path.join(rosstack.get_path(s), "rosdep.yaml")
            rosdep_dict = self.yc.get_specific_rosdeps(path)
            for r in rosdeps:
                if r in rosdep_dict:
                    locations[r].add(path)

        for rd in locations:
            output += "%s defined in %s" % (rd, locations[rd])
        return output