コード例 #1
0
ファイル: workspace.py プロジェクト: ruffsl/colcon-clean
    def main(self, *, context):  # noqa: D102
        check_and_mark_build_tool(context.args.build_base)

        base_handler_extensions = get_base_handler_extensions()
        base_paths = set()

        args = context.args

        for base_name in args.base_select:
            if base_name in base_handler_extensions:
                base_handler_extension = base_handler_extensions[base_name]
                workspace_paths = \
                    base_handler_extension.get_workspace_paths(args=args)
                for workspace_path in workspace_paths:
                    workspace_path = Path(os.path.abspath(workspace_path))
                    base_paths.add(workspace_path)
            else:
                logger.warning(
                    "No base handler for selction '{base_name}'".format_map(
                        locals()))

        confirmed = args.yes
        clean_paths(base_paths, confirmed)

        return 0
コード例 #2
0
ファイル: packages.py プロジェクト: ruffsl/colcon-clean
    def main(self, *, context):  # noqa: D102
        check_and_mark_build_tool(context.args.build_base)

        base_handler_extensions = get_base_handler_extensions()
        base_paths = set()

        args = context.args
        decorators = get_packages(args)

        for base_name in args.base_select:
            if base_name in base_handler_extensions:
                base_handler_extension = base_handler_extensions[base_name]
                for decorator in decorators:
                    if not decorator.selected:
                        continue
                    pkg = decorator.descriptor
                    package_paths = \
                        base_handler_extension.get_package_paths(
                            args=args, pkg=pkg)
                    for package_path in package_paths:
                        package_path = Path(os.path.abspath(package_path))
                        base_paths.add(package_path)
            else:
                logger.warning(
                    "No base handler for selction '{base_name}'"
                    .format_map(locals()))

        confirmed = args.yes
        clean_paths(base_paths, confirmed)

        return 0
コード例 #3
0
    def _get_jobs(self, args, decorators, install_base):
        jobs = OrderedDict()
        unselected_packages = set()
        for decorator in decorators:
            pkg = decorator.descriptor

            if not decorator.selected:
                unselected_packages.add(pkg)
                continue

            extension = get_task_extension('colcon_core.task.build', pkg.type)
            if not extension:
                logger.warning(
                    "No task extension to 'build' a '{pkg.type}' package".
                    format_map(locals()))
                continue

            recursive_dependencies = OrderedDict()
            for dep_name in decorator.recursive_dependencies:
                dep_path = install_base
                if not args.merge_install:
                    dep_path = os.path.join(dep_path, dep_name)
                recursive_dependencies[dep_name] = dep_path

            package_args = BuildPackageArguments(
                pkg,
                args,
                additional_destinations=self.task_argument_destinations.values(
                ))
            ordered_package_args = ', '.join([
                ('%s: %s' % (repr(k), repr(package_args.__dict__[k])))
                for k in sorted(package_args.__dict__.keys())
            ])
            logger.debug(
                "Building package '{pkg.name}' with the following arguments: "
                '{{{ordered_package_args}}}'.format_map(locals()))
            task_context = TaskContext(pkg=pkg,
                                       args=package_args,
                                       dependencies=recursive_dependencies)

            job = Job(identifier=pkg.name,
                      dependencies=set(recursive_dependencies.keys()),
                      task=extension,
                      task_context=task_context)

            jobs[pkg.name] = job
        return jobs, unselected_packages