From 72e321aa322ea09057dfe99504cbccff18e043bc Mon Sep 17 00:00:00 2001 From: Joseph Garrone Date: Mon, 10 Jun 2024 09:24:16 +0200 Subject: [PATCH] Fix update of the build process checkpoint --- src/bin/keycloakify/buildJars/buildJars.ts | 11 ++++++++++- src/bin/keycloakify/keycloakify.ts | 17 +++++++++-------- src/bin/shared/constants.ts | 2 +- src/bin/start-keycloak/keycloakifyBuild.ts | 8 ++++---- src/bin/start-keycloak/start-keycloak.ts | 4 ++-- 5 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/bin/keycloakify/buildJars/buildJars.ts b/src/bin/keycloakify/buildJars/buildJars.ts index f67b5677..aaf65626 100644 --- a/src/bin/keycloakify/buildJars/buildJars.ts +++ b/src/bin/keycloakify/buildJars/buildJars.ts @@ -19,9 +19,10 @@ assert(); export async function buildJars(params: { resourcesDirPath: string; + onlyBuildJarFileBasename: string | undefined; buildContext: BuildContextLike; }): Promise { - const { resourcesDirPath, buildContext } = params; + const { onlyBuildJarFileBasename, resourcesDirPath, buildContext } = params; const doesImplementAccountTheme = readMetaInfKeycloakThemes_fromResourcesDirPath({ resourcesDirPath: buildContext.keycloakifyBuildDirPath @@ -57,12 +58,20 @@ export async function buildJars(params: { keycloakVersionRange }); + if ( + onlyBuildJarFileBasename !== undefined && + onlyBuildJarFileBasename !== jarFileBasename + ) { + return undefined; + } + return { keycloakThemeAdditionalInfoExtensionVersion, jarFileBasename }; } ) + .filter(exclude(undefined)) .map( ({ keycloakThemeAdditionalInfoExtensionVersion, diff --git a/src/bin/keycloakify/keycloakify.ts b/src/bin/keycloakify/keycloakify.ts index aad10c2e..a051533d 100644 --- a/src/bin/keycloakify/keycloakify.ts +++ b/src/bin/keycloakify/keycloakify.ts @@ -3,7 +3,10 @@ import { join as pathJoin, relative as pathRelative, sep as pathSep } from "path import * as child_process from "child_process"; import * as fs from "fs"; import { getBuildContext } from "../shared/buildContext"; -import { vitePluginSubScriptEnvNames, skipBuildJarsEnvName } from "../shared/constants"; +import { + vitePluginSubScriptEnvNames, + onlyBuildJarFileBasenameEnvName +} from "../shared/constants"; import { buildJars } from "./buildJars"; import type { CliCommandOptions } from "../main"; import chalk from "chalk"; @@ -99,13 +102,11 @@ export async function command(params: { cliCommandOptions: CliCommandOptions }) }); } - build_jars: { - if (process.env[skipBuildJarsEnvName]) { - break build_jars; - } - - await buildJars({ resourcesDirPath, buildContext }); - } + await buildJars({ + resourcesDirPath, + buildContext, + onlyBuildJarFileBasename: process.env[onlyBuildJarFileBasenameEnvName] + }); if (Date.now() === 0) { rmSync(resourcesDirPath, { recursive: true }); diff --git a/src/bin/shared/constants.ts b/src/bin/shared/constants.ts index 2600ea2d..64f03217 100644 --- a/src/bin/shared/constants.ts +++ b/src/bin/shared/constants.ts @@ -16,7 +16,7 @@ export const vitePluginSubScriptEnvNames = { resolveViteConfig: "KEYCLOAKIFY_RESOLVE_VITE_CONFIG" } as const; -export const skipBuildJarsEnvName = "KEYCLOAKIFY_SKIP_BUILD_JAR"; +export const onlyBuildJarFileBasenameEnvName = "KEYCLOAKIFY_ONLY_BUILD_JAR_FILE_BASENAME"; export const loginThemePageIds = [ "login.ftl", diff --git a/src/bin/start-keycloak/keycloakifyBuild.ts b/src/bin/start-keycloak/keycloakifyBuild.ts index c4e46d0a..fd483db3 100644 --- a/src/bin/start-keycloak/keycloakifyBuild.ts +++ b/src/bin/start-keycloak/keycloakifyBuild.ts @@ -1,4 +1,4 @@ -import { skipBuildJarsEnvName } from "../shared/constants"; +import { onlyBuildJarFileBasenameEnvName } from "../shared/constants"; import * as child_process from "child_process"; import { Deferred } from "evt/tools/Deferred"; import { assert } from "tsafe/assert"; @@ -14,10 +14,10 @@ export type BuildContextLike = { assert(); export async function keycloakifyBuild(params: { - doSkipBuildJars: boolean; + onlyBuildJarFileBasename: string | undefined; buildContext: BuildContextLike; }): Promise<{ isKeycloakifyBuildSuccess: boolean }> { - const { buildContext, doSkipBuildJars } = params; + const { buildContext, onlyBuildJarFileBasename } = params; const dResult = new Deferred<{ isSuccess: boolean }>(); @@ -25,7 +25,7 @@ export async function keycloakifyBuild(params: { cwd: buildContext.projectDirPath, env: { ...process.env, - ...(doSkipBuildJars ? { [skipBuildJarsEnvName]: "true" } : {}) + [onlyBuildJarFileBasenameEnvName]: onlyBuildJarFileBasename } }); diff --git a/src/bin/start-keycloak/start-keycloak.ts b/src/bin/start-keycloak/start-keycloak.ts index 00233234..29f8e9b6 100644 --- a/src/bin/start-keycloak/start-keycloak.ts +++ b/src/bin/start-keycloak/start-keycloak.ts @@ -101,7 +101,7 @@ export async function command(params: { cliCommandOptions: CliCommandOptions }) } const { isKeycloakifyBuildSuccess } = await keycloakifyBuild({ - doSkipBuildJars: false, + onlyBuildJarFileBasename: undefined, buildContext }); @@ -442,7 +442,7 @@ export async function command(params: { cliCommandOptions: CliCommandOptions }) } const { isKeycloakifyBuildSuccess } = await keycloakifyBuild({ - doSkipBuildJars: true, + onlyBuildJarFileBasename: jarFileBasename, buildContext });