modded7/tools/tasks/lang/index.ts

39 lines
1.1 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 = { nodir: true, base: resourcesPath };
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);