diff --git a/src/bin/shared/buildContext.ts b/src/bin/shared/buildContext.ts index 1ebd03f5..20154ae7 100644 --- a/src/bin/shared/buildContext.ts +++ b/src/bin/shared/buildContext.ts @@ -463,7 +463,7 @@ export function getBuildContext(params: { recordIsImplementedByThemeType, themeSrcDirPath, jarTargets: (() => { - const getJarFileBasename = (range: string) => + const getDefaultJarFileBasename = (range: string) => `keycloak-theme-for-kc-${range}.jar`; build_for_specific_keycloak_major_version: { @@ -536,10 +536,39 @@ export function getBuildContext(params: { } })(); + const jarFileBasename = (() => { + use_custom_jar_basename: { + const { keycloakVersionTargets } = buildOptions; + + if (keycloakVersionTargets === undefined) { + break use_custom_jar_basename; + } + + const entry = objectEntries(keycloakVersionTargets).find( + ([keycloakVersionRange_entry]) => + keycloakVersionRange_entry === keycloakVersionRange + ); + + if (entry === undefined) { + break use_custom_jar_basename; + } + + const maybeJarFileBasename = entry[1]; + + if (typeof maybeJarFileBasename !== "string") { + break use_custom_jar_basename; + } + + return maybeJarFileBasename; + } + + return getDefaultJarFileBasename(keycloakVersionRange); + })(); + return [ { keycloakVersionRange, - jarFileBasename: getJarFileBasename(keycloakVersionRange) + jarFileBasename } ]; } @@ -562,7 +591,8 @@ export function getBuildContext(params: { >(true); jarTargets.push({ keycloakVersionRange, - jarFileBasename: getJarFileBasename(keycloakVersionRange) + jarFileBasename: + getDefaultJarFileBasename(keycloakVersionRange) }); } } else { @@ -578,7 +608,8 @@ export function getBuildContext(params: { >(true); jarTargets.push({ keycloakVersionRange, - jarFileBasename: getJarFileBasename(keycloakVersionRange) + jarFileBasename: + getDefaultJarFileBasename(keycloakVersionRange) }); } } @@ -667,7 +698,7 @@ export function getBuildContext(params: { if (jarNameOrBoolean === true) { jarTargets.push({ keycloakVersionRange: keycloakVersionRange, - jarFileBasename: getJarFileBasename(keycloakVersionRange) + jarFileBasename: getDefaultJarFileBasename(keycloakVersionRange) }); continue; } diff --git a/src/bin/start-keycloak/start-keycloak.ts b/src/bin/start-keycloak/start-keycloak.ts index 989cdc66..2ab65eb8 100644 --- a/src/bin/start-keycloak/start-keycloak.ts +++ b/src/bin/start-keycloak/start-keycloak.ts @@ -113,10 +113,6 @@ export async function command(params: { cliCommandOptions: CliCommandOptions }) const keycloakMajorVersionNumber = SemVer.parse(keycloakVersion).major; - const beforeBuildJarFileBasenames = fs - .readdirSync(buildContext.keycloakifyBuildDirPath) - .filter(fileBasename => fileBasename.endsWith(".jar")); - { const { isAppBuildSuccess } = await appBuild({ buildContext @@ -270,13 +266,7 @@ export async function command(params: { cliCommandOptions: CliCommandOptions }) pathBasename(jarFilePath) ); - { - const fsFnName = beforeBuildJarFileBasenames.includes(pathBasename(jarFilePath)) - ? "copyFileSync" - : "renameSync"; - - fs[fsFnName](jarFilePath, jarFilePath_cacheDir); - } + fs.copyFileSync(jarFilePath, jarFilePath_cacheDir); try { child_process.execSync(`docker rm --force ${containerName}`, { @@ -376,6 +366,10 @@ export async function command(params: { cliCommandOptions: CliCommandOptions }) console.log( [ + "", + `The ftl files from ${chalk.bold( + `.${pathSep}${pathRelative(process.cwd(), pathJoin(buildContext.keycloakifyBuildDirPath, "theme"))}` + )} are mounted in the Keycloak container.`, "", `Keycloak Admin console: ${chalk.cyan.bold( `http://localhost:${cliCommandOptions.port}`