From 551e9c041e9157d4a660b01585b00d32d58d1caf Mon Sep 17 00:00:00 2001 From: Alex Oliynyk Date: Tue, 6 Jul 2021 15:52:14 +0300 Subject: [PATCH] add possibility to add custom properties to theme.properties file --- src/bin/build-keycloak-theme/build-keycloak-theme.ts | 4 +++- .../generateKeycloakThemeResources.ts | 8 ++++++-- src/test/bin/generateKeycloakThemeResources.ts | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/bin/build-keycloak-theme/build-keycloak-theme.ts b/src/bin/build-keycloak-theme/build-keycloak-theme.ts index c3b33f0c..aad67d8d 100644 --- a/src/bin/build-keycloak-theme/build-keycloak-theme.ts +++ b/src/bin/build-keycloak-theme/build-keycloak-theme.ts @@ -19,6 +19,7 @@ export function main() { console.log("🔏 Building the keycloak theme...⌚"); const extraPagesId: string[] = (parsedPackageJson as any)["keycloakify"]?.["extraPages"] ?? []; + const extraThemeProperties: string[] = (parsedPackageJson as any)["keycloakify"]?.["extraThemeProperties"] ?? []; generateKeycloakThemeResources({ keycloakThemeBuildingDirPath, @@ -55,7 +56,8 @@ export function main() { }; })(), - extraPagesId + extraPagesId, + extraThemeProperties }); const { jarFilePath } = generateJavaStackFiles({ diff --git a/src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts b/src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts index 86e2d7ab..df879eed 100644 --- a/src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts +++ b/src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts @@ -23,12 +23,13 @@ export function generateKeycloakThemeResources( //If urlOrigin is not undefined then it means --externals-assets urlOrigin: undefined | string; extraPagesId: string[]; + extraThemeProperties: string[]; } ) { const { themeName, reactAppBuildDirPath, keycloakThemeBuildingDirPath, - urlPathname, urlOrigin, extraPagesId + urlPathname, urlOrigin, extraPagesId, extraThemeProperties } = params; const themeDirPath = pathJoin(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme", themeName, "login"); @@ -166,7 +167,10 @@ export function generateKeycloakThemeResources( fs.writeFileSync( pathJoin(themeDirPath, "theme.properties"), - Buffer.from("parent=keycloak", "utf8") + Buffer.from( + "parent=keycloak".concat("\n\n", extraThemeProperties.join("\n\n")), + "utf8" + ) ); } diff --git a/src/test/bin/generateKeycloakThemeResources.ts b/src/test/bin/generateKeycloakThemeResources.ts index 5c6dedbb..cdf8b761 100644 --- a/src/test/bin/generateKeycloakThemeResources.ts +++ b/src/test/bin/generateKeycloakThemeResources.ts @@ -14,6 +14,7 @@ generateKeycloakThemeResources({ "keycloakThemeBuildingDirPath": pathJoin(sampleReactProjectDirPath, "build_keycloak_theme"), "urlPathname": "/keycloakify-demo-app/", "urlOrigin": undefined, - "extraPagesId": ["my-custom-page.ftl"] + "extraPagesId": ["my-custom-page.ftl"], + "extraThemeProperties": ["env=test"] });