#!/usr/bin/env node

import { keycloakThemeBuildingDirPath } from "./build-keycloak-theme";
import { join as pathJoin } from "path";
import { downloadAndUnzip } from "./tools/downloadAndUnzip";
import type { KeycloakVersion } from "./KeycloakVersion";

export function downloadBuiltinKeycloakTheme(params: { keycloakVersion: KeycloakVersion; destDirPath: string }) {
    const { keycloakVersion, destDirPath } = params;

    for (const ext of ["", "-community"]) {
        downloadAndUnzip({
            "destDirPath": destDirPath,
            "url": `https://github.com/keycloak/keycloak/archive/refs/tags/${keycloakVersion}.zip`,
            "pathOfDirToExtractInArchive": `keycloak-${keycloakVersion}/themes/src/main/resources${ext}/theme`,
        });
    }
}

if (require.main === module) {
    const keycloakVersion = (() => {
        const keycloakVersion = process.argv[2] as KeycloakVersion | undefined;

        if (keycloakVersion === undefined) {
            return "15.0.2";
        }

        return keycloakVersion;
    })();

    const destDirPath = pathJoin(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme");

    console.log(`Downloading builtins theme of Keycloak ${keycloakVersion} here ${destDirPath}`);

    downloadBuiltinKeycloakTheme({
        keycloakVersion,
        destDirPath,
    });
}
