def main(options): lines = [] if not options.topological_order: package_paths = find_package_paths(options.basepath) for package_path in package_paths: package = None package_abs_path = os.path.join(options.basepath, package_path) if options.depends_on is not None: package = parse_package(package_abs_path) if options.depends_on not in get_unique_depend_names(package): continue if options.names_only: package = package or parse_package(package_abs_path) lines.append(package.name) elif options.paths_only: lines.append(package_path) else: package = package or parse_package(package_abs_path) lines.append(package.name + ' ' + package_path) lines.sort() else: packages = find_unique_packages(options.basepath) packages = topological_order_packages(packages) for package_path, package, _ in packages: if options.depends_on is not None: if options.depends_on not in get_unique_depend_names(package): continue if options.names_only: lines.append(package.name) elif options.paths_only: lines.append(package_path) else: lines.append(package.name + ' ' + package_path) for line in lines: print(line)
def main(options): lines = [] if not options.topological_order: package_paths = find_package_paths(options.basepath) for package_path in package_paths: package = None package_abs_path = os.path.join(options.basepath, package_path) if options.depends_on is not None: package = parse_package(package_abs_path) if options.depends_on not in get_unique_depend_names(package): continue if options.names_only: package = package or parse_package(package_abs_path) lines.append(package.name) elif options.paths_only: lines.append(package_path) else: package = package or parse_package(package_abs_path) lines.append(package.name + ' ' + package_path) else: packages = find_unique_packages(options.basepath) packages = topological_order_packages(packages) for package_path, package, _ in packages: if options.depends_on is not None: if options.depends_on not in get_unique_depend_names(package): continue if options.names_only: lines.append(package.name) elif options.paths_only: lines.append(package_path) else: lines.append(package.name + ' ' + package_path) lines.sort() for line in lines: print(line)
def main(options): path = os.curdir if options.path is None else options.path try: path = argparse_existing_package(path) except argparse.ArgumentTypeError as exc: sys.exit('Error: {0}'.format(exc)) package = parse_package(path) print(package.name)
def find_packages(basepath, exclude_paths=None): """ Crawl the filesystem to find package manifest files and parses them. :param str basepath: The path to search in :param list exclude_paths: A list of paths which should not be searched :returns: A dict mapping relative paths to :py:class:`catkin_pkg.package.Package` objects :rtype: dict """ packages = {} package_paths = find_package_paths(basepath, exclude_paths=exclude_paths) for path in package_paths: packages[path] = parse_package(os.path.join(basepath, path)) return packages
def find_packages(basepath, exclude_paths=None): """ Crawl the filesystem to find package manifest files and parses them. :param str basepath: The path to search in :param list exclude_paths: A list of paths which should not be searched :returns: A dict mapping relative paths to :py:class:`catkin_pkg.package.Package` objects :rtype: dict """ packages = {} package_paths = find_package_paths(basepath, exclude_paths=exclude_paths) for path in package_paths: packages[path] = parse_package(os.path.join(basepath, path)) return packages
def main(options): lines = [] if not options.topological_order: package_paths = find_package_paths(options.basepath) # parse package manifests packages = {} for package_path in package_paths: package_abs_path = os.path.join(options.basepath, package_path) package = parse_package(package_abs_path) packages[package_path] = package # evaluate conditions for package in packages.values(): package.evaluate_conditions(os.environ) # expand group dependencies for package in packages.values(): for group in package.group_depends: if group.evaluated_condition: group.extract_group_members(packages.values()) for package_path, package in packages.items(): if options.depends_on is not None: if options.depends_on not in get_unique_depend_names(package): continue if options.names_only: lines.append(package.name) elif options.paths_only: lines.append(package_path) else: lines.append(package.name + ' ' + package_path) lines.sort() else: packages = find_unique_packages(options.basepath) packages = topological_order_packages(packages) for package_path, package, _ in packages: if options.depends_on is not None: if options.depends_on not in get_unique_depend_names(package): continue if options.names_only: lines.append(package.name) elif options.paths_only: lines.append(package_path) else: lines.append(package.name + ' ' + package_path) for line in lines: print(line)
def _get_cached_package_manifest(path): global package_manifest_cache_ if path not in package_manifest_cache_: package_manifest_cache_[path] = parse_package(path) return package_manifest_cache_[path]
def _get_cached_package_manifest(path): global package_manifest_cache_ if path not in package_manifest_cache_: package_manifest_cache_[path] = parse_package(path) return package_manifest_cache_[path]