import gulp from "gulp"; import rename from "gulp-rename"; import merge from "merge-stream"; import upath from "upath"; import buildConfig from "#buildConfig"; import { langDestDirectory, overridesFolder, sharedDestDirectory, } from "#globals"; import fs from "fs"; /** * Checks and creates all necessary directories so we can build the lang safely. */ async function createLangDirs() { if (!fs.existsSync(langDestDirectory)) { await fs.promises.mkdir(langDestDirectory, { recursive: true }); } } async function copyLang() { const resourcesPath = upath.join( sharedDestDirectory, overridesFolder, "resources", ); const opts = { base: resourcesPath, resolveSymlinks: true }; const streams = [ gulp.src(upath.join(resourcesPath, "pack.mcmeta"), opts), gulp.src(upath.join(resourcesPath, "**/*.lang"), opts).pipe( rename((f) => { f.dirname = upath.join("assets", f.dirname); }), ), ]; return await new Promise((resolve) => { merge(...streams) .pipe( gulp.dest( upath.join(buildConfig.buildDestinationDirectory, langDestDirectory), ), ) .on("end", resolve); }); } export default gulp.series(createLangDirs, copyLang);