2022-04-20 21:13:32 +02:00
|
|
|
#!/usr/bin/env node
|
|
|
|
|
2022-04-20 00:39:40 +02:00
|
|
|
import { downloadBuiltinKeycloakTheme } from "./download-builtin-keycloak-theme";
|
2022-08-22 17:17:35 +07:00
|
|
|
import { keycloakThemeEmailDirPath } from "./keycloakify";
|
2022-04-20 00:39:40 +02:00
|
|
|
import { join as pathJoin, basename as pathBasename } from "path";
|
|
|
|
import { transformCodebase } from "./tools/transformCodebase";
|
|
|
|
import { promptKeycloakVersion } from "./promptKeycloakVersion";
|
|
|
|
import * as fs from "fs";
|
2022-09-08 12:06:26 +03:00
|
|
|
import { getCliOptions } from "./tools/cliOptions";
|
|
|
|
import { getLogger } from "./tools/logger";
|
2022-04-20 00:39:40 +02:00
|
|
|
|
|
|
|
if (require.main === module) {
|
|
|
|
(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
|
|
|
if (fs.existsSync(keycloakThemeEmailDirPath)) {
|
2022-09-08 12:06:26 +03:00
|
|
|
logger.warn(`There is already a ./${pathBasename(keycloakThemeEmailDirPath)} directory in your project. Aborting.`);
|
2022-04-20 00:39:40 +02:00
|
|
|
|
|
|
|
process.exit(-1);
|
|
|
|
}
|
|
|
|
|
|
|
|
const { keycloakVersion } = await promptKeycloakVersion();
|
|
|
|
|
2022-04-20 01:26:22 +02:00
|
|
|
const builtinKeycloakThemeTmpDirPath = pathJoin(keycloakThemeEmailDirPath, "..", "tmp_xIdP3_builtin_keycloak_theme");
|
2022-04-20 00:39:40 +02:00
|
|
|
|
|
|
|
downloadBuiltinKeycloakTheme({
|
|
|
|
keycloakVersion,
|
2022-09-08 12:06:26 +03:00
|
|
|
"destDirPath": builtinKeycloakThemeTmpDirPath,
|
2022-09-08 15:13:09 +02:00
|
|
|
isSilent
|
2022-04-20 00:39:40 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
transformCodebase({
|
|
|
|
"srcDirPath": pathJoin(builtinKeycloakThemeTmpDirPath, "base", "email"),
|
2022-08-20 11:44:48 +07:00
|
|
|
"destDirPath": keycloakThemeEmailDirPath
|
2022-04-20 00:39:40 +02:00
|
|
|
});
|
|
|
|
|
2022-09-08 12:06:26 +03:00
|
|
|
logger.log(`./${pathBasename(keycloakThemeEmailDirPath)} ready to be customized`);
|
2022-04-20 00:39:40 +02:00
|
|
|
|
|
|
|
fs.rmSync(builtinKeycloakThemeTmpDirPath, { "recursive": true, "force": true });
|
|
|
|
})();
|
|
|
|
}
|