keycloak_theme/src/bin/create-keycloak-email-directory.ts

42 lines
1.6 KiB
TypeScript
Raw Normal View History

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";
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();
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,
isSilent
2022-04-20 00:39:40 +02:00
});
transformCodebase({
"srcDirPath": pathJoin(builtinKeycloakThemeTmpDirPath, "base", "email"),
"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 });
})();
}