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));
});
}