Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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
Example #5
0
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
Example #6
0
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)
Example #7
0
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]
Example #8
0
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]