41 lines
1.5 KiB
JavaScript
41 lines
1.5 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import { keycloakThemeBuildingDirPath } from "./keycloakify";
|
|
import { join as pathJoin } from "path";
|
|
import { downloadAndUnzip } from "./tools/downloadAndUnzip";
|
|
import { promptKeycloakVersion } from "./promptKeycloakVersion";
|
|
import { getCliOptions } from "./tools/cliOptions";
|
|
import { getLogger } from "./tools/logger";
|
|
|
|
export async function downloadBuiltinKeycloakTheme(params: { keycloakVersion: string; destDirPath: string; isSilent: boolean }) {
|
|
const { keycloakVersion, destDirPath, isSilent } = params;
|
|
|
|
for (const ext of ["", "-community"]) {
|
|
await downloadAndUnzip({
|
|
"destDirPath": destDirPath,
|
|
"url": `https://github.com/keycloak/keycloak/archive/refs/tags/${keycloakVersion}.zip`,
|
|
"pathOfDirToExtractInArchive": `keycloak-${keycloakVersion}/themes/src/main/resources${ext}/theme`,
|
|
"cacheDirPath": pathJoin(keycloakThemeBuildingDirPath, ".cache"),
|
|
isSilent
|
|
});
|
|
}
|
|
}
|
|
|
|
if (require.main === module) {
|
|
(async () => {
|
|
const { isSilent } = getCliOptions(process.argv.slice(2));
|
|
const logger = getLogger({ isSilent });
|
|
const { keycloakVersion } = await promptKeycloakVersion();
|
|
|
|
const destDirPath = pathJoin(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme");
|
|
|
|
logger.log(`Downloading builtins theme of Keycloak ${keycloakVersion} here ${destDirPath}`);
|
|
|
|
await downloadBuiltinKeycloakTheme({
|
|
keycloakVersion,
|
|
destDirPath,
|
|
isSilent
|
|
});
|
|
})();
|
|
}
|