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": {
"type": "string"
},
"keepBuildDir": {
"type": "boolean"
}
},
"additionalProperties": false

View File

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

View File

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

View File

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