64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
import { join as pathJoin, relative as pathRelative, sep as pathSep } from "path";
|
|
import { promptKeycloakVersion } from "./shared/promptKeycloakVersion";
|
|
import { getBuildContext } from "./shared/buildContext";
|
|
import { downloadKeycloakDefaultTheme } from "./shared/downloadKeycloakDefaultTheme";
|
|
import { transformCodebase } from "./tools/transformCodebase";
|
|
import type { CliCommandOptions } from "./main";
|
|
import chalk from "chalk";
|
|
|
|
export async function command(params: { cliCommandOptions: CliCommandOptions }) {
|
|
const { cliCommandOptions } = params;
|
|
|
|
const buildContext = getBuildContext({
|
|
cliCommandOptions
|
|
});
|
|
|
|
console.log(
|
|
chalk.cyan(
|
|
"Select the Keycloak version from which you want to download the builtins theme:"
|
|
)
|
|
);
|
|
|
|
const { keycloakVersion } = await promptKeycloakVersion({
|
|
startingFromMajor: undefined,
|
|
cacheDirPath: buildContext.cacheDirPath
|
|
});
|
|
|
|
console.log(`→ ${keycloakVersion}`);
|
|
|
|
const destDirPath = pathJoin(
|
|
buildContext.keycloakifyBuildDirPath,
|
|
"src",
|
|
"main",
|
|
"resources",
|
|
"theme"
|
|
);
|
|
|
|
console.log(
|
|
[
|
|
`Downloading builtins theme of Keycloak ${keycloakVersion} here:`,
|
|
`- ${chalk.bold(
|
|
`.${pathSep}${pathJoin(pathRelative(process.cwd(), destDirPath), "base")}`
|
|
)}`,
|
|
`- ${chalk.bold(
|
|
`.${pathSep}${pathJoin(
|
|
pathRelative(process.cwd(), destDirPath),
|
|
"keycloak"
|
|
)}`
|
|
)}`
|
|
].join("\n")
|
|
);
|
|
|
|
const { defaultThemeDirPath } = await downloadKeycloakDefaultTheme({
|
|
keycloakVersion,
|
|
buildContext
|
|
});
|
|
|
|
transformCodebase({
|
|
srcDirPath: defaultThemeDirPath,
|
|
destDirPath
|
|
});
|
|
|
|
console.log(chalk.green(`✓ done`));
|
|
}
|