protected static void addPackageAsDependency()

in plugins/docker/base-image/src/main/java/co/elastic/gradle/dockerbase/DockerBaseImageBuildPlugin.java [295:326]


    protected static void addPackageAsDependency(Project target, BaseImageExtension extension, Map.Entry<Architecture, Configuration> packageConfiguration, UnchangingPackage pkg) {
        final String type = extension.getOSDistribution().get()
                .name().toLowerCase(Locale.ROOT);
        final Map<String, String> dependencyNotation = Map.of(
                "group", type + (
                        extension.getOSDistribution().get().equals(OSDistribution.WOLFI) ?
                                "/" + packageConfiguration.getKey().toString().toLowerCase(Locale.ROOT) :
                                ""
                ),
                "name", pkg.name(),
                // Gradle has trouble dealing with : in the version, so we rename the
                // packages to have . instead and use the same here
                "version", switch (extension.getOSDistribution().get()) {
                    case DEBIAN, UBUNTU -> pkg.version().replace(":", ".") +
                                           "-" + pkg.architecture();
                    case CENTOS -> pkg.version() + "-" +
                                   pkg.release() + "." +
                                   pkg.architecture();
                    case WOLFI -> pkg.version();
                },
                "ext", switch (extension.getOSDistribution().get()) {
                    case DEBIAN, UBUNTU -> pkg.name().startsWith("__META__") ? "gz" : "deb";
                    case CENTOS -> pkg.name().startsWith("__META__") ? "tar" : "rpm";
                    case WOLFI -> pkg.name().startsWith("__META__") ? "gz" : "apk";
                }
        );

        target.getDependencies().add(
                packageConfiguration.getValue().getName(),
                dependencyNotation
        );
    }