public void apply()

in plugins/cli/manifest-tool/src/main/java/co/elastic/gradle/cli/manifest/ManifestToolPlugin.java [42:85]


    public void apply(Project target) {
        target.getPluginManager().apply(BaseCliPlugin.class);

        final BaseCLiExtension extension = target.getExtensions().getByType(CliExtension.class)
                .getExtensions()
                .create("manifestTool", BaseCLiExtension.class);
        extension.getVersion().convention("v2.1.6");

        target.afterEvaluate(p -> {
            BaseCliPlugin.addDownloadRepo(target, extension);
            if (extension.getVersion().get().startsWith("v1.")) {
                Arrays.stream(OS.values()).forEach(os ->
                        Arrays.stream(Architecture.values())
                                .filter(arch -> !(OS.current().equals(OS.DARWIN) && arch.equals(Architecture.AARCH64)))
                                .forEach(arch -> {
                                            BaseCliPlugin.addDependency(
                                                    target,
                                                    "estesp/manifest-tool:manifest-tool:" +
                                                    extension.getVersion().get() + ":" +
                                                    os.name().toLowerCase() + "-" +
                                                    arch.dockerName()
                                            );
                                        }
                                )
                );
            } else {
                extension.getPattern().convention("[organisation]/releases/download/[revision]/[module].[classifier]");
                BaseCliPlugin.addDependency(
                        target,
                        "estesp/manifest-tool:binaries-manifest-tool-" +
                        extension.getVersion().get().substring(1) + ":" + extension.getVersion().get() + ":tar.gz"
                );
            }
        });

        target.getTasks().withType(ManifestToolExecTask.class)
                .configureEach(task -> {
                    task.setEnvironment(Collections.emptyMap());
                    task.setExecutable(getExecutable(target));
                    task.dependsOn(":" + BaseCliPlugin.SYNC_TASK_NAME);
                    task.setStandardOutput(new PrefixingOutputStream("[manifest-tool] ", System.out));
                    task.setErrorOutput(new PrefixingOutputStream("[manifest-tool] ", System.err));
                });
    }