keycloak_theme/src/bin/download-builtin-keycloak-theme.ts

43 lines
1.6 KiB
TypeScript
Raw Normal View History

2021-02-21 23:40:10 +01:00
#!/usr/bin/env node
2021-02-21 23:06:42 +01:00
import { keycloakThemeBuildingDirPath } from "./keycloakify";
2021-03-03 02:31:02 +01:00
import { join as pathJoin } from "path";
import { downloadAndUnzip } from "./tools/downloadAndUnzip";
2022-04-20 00:39:40 +02:00
import { promptKeycloakVersion } from "./promptKeycloakVersion";
2022-09-08 12:06:26 +03:00
import { getCliOptions } from "./tools/cliOptions";
import { getLogger } from "./tools/logger";
2021-02-21 23:06:42 +01:00
export async function downloadBuiltinKeycloakTheme(params: { keycloakVersion: string; destDirPath: string; isSilent: boolean }) {
2022-09-08 12:06:26 +03:00
const { keycloakVersion, destDirPath, isSilent } = params;
await Promise.all(
["", "-community"].map(ext =>
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
})
)
);
}
2021-02-28 18:40:57 +01:00
if (require.main === module) {
2022-04-20 00:39:40 +02:00
(async () => {
2022-09-08 12:06:26 +03:00
const { isSilent } = getCliOptions(process.argv.slice(2));
const logger = getLogger({ isSilent });
2022-04-20 00:39:40 +02:00
const { keycloakVersion } = await promptKeycloakVersion();
2022-04-20 00:39:40 +02:00
const destDirPath = pathJoin(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme");
2022-09-08 12:06:26 +03:00
logger.log(`Downloading builtins theme of Keycloak ${keycloakVersion} here ${destDirPath}`);
await downloadBuiltinKeycloakTheme({
2022-04-20 00:39:40 +02:00
keycloakVersion,
2022-09-08 12:06:26 +03:00
destDirPath,
isSilent
2022-04-20 00:39:40 +02:00
});
})();
2021-02-28 18:40:57 +01:00
}