modded7/tools/tasks/lang/index.ts

51 lines
1.2 KiB
TypeScript
Raw Normal View History

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);