add build option keepBuildDir

if set to true, will not cleanup build_keycloak directory
This commit is contained in:
Thomas Silvestre
2023-04-12 11:44:37 +02:00
parent 1ff0449332
commit 86884607ef
4 changed files with 25 additions and 4 deletions

View File

@ -78,6 +78,9 @@
}, },
"themeName": { "themeName": {
"type": "string" "type": "string"
},
"keepBuildDir": {
"type": "boolean"
} }
}, },
"additionalProperties": false "additionalProperties": false

View File

@ -27,6 +27,7 @@ export namespace BuildOptions {
/** Directory that keycloakify outputs to. Defaults to {cwd}/build_keycloak */ /** Directory that keycloakify outputs to. Defaults to {cwd}/build_keycloak */
keycloakifyBuildDirPath: string; keycloakifyBuildDirPath: string;
customUserAttributes: string[]; customUserAttributes: string[];
keepBuildDir: boolean;
}; };
export type Standalone = Common & { export type Standalone = Common & {
@ -98,8 +99,17 @@ export function readBuildOptions(params: { projectDirPath: string; isExternalAss
const common: BuildOptions.Common = (() => { const common: BuildOptions.Common = (() => {
const { name, keycloakify = {}, version, homepage } = parsedPackageJson; const { name, keycloakify = {}, version, homepage } = parsedPackageJson;
const { extraPages, extraLoginPages, extraAccountPages, extraThemeProperties, groupId, artifactId, bundler, keycloakVersionDefaultAssets } = const {
keycloakify ?? {}; extraPages,
extraLoginPages,
extraAccountPages,
extraThemeProperties,
groupId,
artifactId,
bundler,
keycloakVersionDefaultAssets,
keepBuildDir
} = keycloakify ?? {};
const themeName = const themeName =
keycloakify.themeName ?? keycloakify.themeName ??
@ -179,7 +189,8 @@ export function readBuildOptions(params: { projectDirPath: string; isExternalAss
return keycloakifyBuildDirPath; return keycloakifyBuildDirPath;
})(), })(),
"customUserAttributes": keycloakify.customUserAttributes ?? [] "customUserAttributes": keycloakify.customUserAttributes ?? [],
"keepBuildDir": keepBuildDir ?? false
}; };
})(); })();

View File

@ -26,6 +26,11 @@ export async function main() {
"isSilent": isSilent "isSilent": isSilent
}); });
if (!buildOptions.keepBuildDir) {
logger.log("🧹 Cleanup files under " + buildOptions.keycloakifyBuildDirPath);
fs.rmSync(buildOptions.keycloakifyBuildDirPath, { recursive: true, force: true });
}
const { doBundlesEmailTemplate } = await generateKeycloakThemeResources({ const { doBundlesEmailTemplate } = await generateKeycloakThemeResources({
keycloakThemeBuildingDirPath: buildOptions.keycloakifyBuildDirPath, keycloakThemeBuildingDirPath: buildOptions.keycloakifyBuildDirPath,
"emailThemeSrcDirPath": (() => { "emailThemeSrcDirPath": (() => {

View File

@ -25,6 +25,7 @@ export type ParsedPackageJson = {
keycloakifyBuildDirPath?: string; keycloakifyBuildDirPath?: string;
customUserAttributes?: string[]; customUserAttributes?: string[];
themeName?: string; themeName?: string;
keepBuildDir?: boolean;
}; };
}; };
@ -46,7 +47,8 @@ export const zParsedPackageJson = z.object({
"reactAppBuildDirPath": z.string().optional(), "reactAppBuildDirPath": z.string().optional(),
"keycloakifyBuildDirPath": z.string().optional(), "keycloakifyBuildDirPath": z.string().optional(),
"customUserAttributes": z.array(z.string()).optional(), "customUserAttributes": z.array(z.string()).optional(),
"themeName": z.string().optional() "themeName": z.string().optional(),
"keepBuildDir": z.boolean().optional()
}) })
.optional() .optional()
}); });