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

43 lines
1.5 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 }) {
const { keycloakVersion, destDirPath } = 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`
})
)
);
}
2021-02-28 18:40:57 +01:00
async function main() {
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
});
}
if (require.main === module) {
main().catch(e => console.error(e));
2021-02-28 18:40:57 +01:00
}