|
| 1 | +import { resolve } from 'node:path'; |
| 2 | +import { $, cd, chalk, glob, within } from 'zx'; |
| 3 | +import { initDir, cpRf, exists } from './fileutiles.mjs'; |
| 4 | + |
| 5 | +const rootDir = resolve(__dirname, '../'); |
| 6 | +const adevEsDir = resolve(rootDir, 'adev-es'); |
| 7 | +const outDir = resolve(rootDir, 'build'); |
| 8 | + |
| 9 | +export async function resetBuildDir({ init = false }) { |
| 10 | + if (init) { |
| 11 | + console.log(chalk.cyan('synchronizing git submodule...')); |
| 12 | + await syncSubmodule(); |
| 13 | + } |
| 14 | + |
| 15 | + const buildDirExists = await exists(outDir); |
| 16 | + if (init || !buildDirExists) { |
| 17 | + console.log(chalk.cyan('removing build directory...')); |
| 18 | + await initDir(outDir); |
| 19 | + console.log(chalk.cyan('copying origin files to build directory...')); |
| 20 | + await cpRf(resolve(rootDir, 'origin'), outDir); |
| 21 | + } |
| 22 | +} |
| 23 | + |
| 24 | +export async function buildADEV() { |
| 25 | + await within(async () => { |
| 26 | + cd(`${outDir}/adev`); |
| 27 | + await $`yarn install`; |
| 28 | + await $`yarn build`; |
| 29 | + }); |
| 30 | +} |
| 31 | + |
| 32 | +/** |
| 33 | + * glob patterns of localized files in adev-es |
| 34 | + */ |
| 35 | +const localizedFilePatterns = ['**/*', '!**/*.en.*']; |
| 36 | + |
| 37 | +export async function copyLocalizedFiles() { |
| 38 | + const esFiles = await glob(localizedFilePatterns, { |
| 39 | + cwd: adevEsDir, |
| 40 | + }); |
| 41 | + for (const file of esFiles) { |
| 42 | + const src = resolve(adevEsDir, file); |
| 43 | + const dest = resolve(outDir, 'adev', file); |
| 44 | + await cpRf(src, dest); |
| 45 | + } |
| 46 | +} |
| 47 | + |
| 48 | +export async function syncSubmodule() { |
| 49 | + await within(async () => { |
| 50 | + cd(rootDir); |
| 51 | + await $`git submodule sync`; |
| 52 | + await $`git submodule update --init`; |
| 53 | + }); |
| 54 | +} |
| 55 | + |
0 commit comments