44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
const path = require("path");
|
|
const fs = require("fs");
|
|
const pkg = require(path.resolve(process.cwd(), "package.json"));
|
|
|
|
const args = process.argv.slice(2);
|
|
let verbose = false;
|
|
for (let i = 0; i < args.length; i++) {
|
|
switch (args[i]) {
|
|
case "-v":
|
|
verbose = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
function processDirectory(dir) {
|
|
if (verbose) {
|
|
console.log(`processing ${dir}`);
|
|
}
|
|
for (const item of fs.readdirSync(dir)) {
|
|
const fullPath = path.resolve(dir, item);
|
|
const stats = fs.statSync(fullPath);
|
|
if (stats.isDirectory()) {
|
|
processDirectory(fullPath);
|
|
} else if (stats.isFile()) {
|
|
processFile(fullPath);
|
|
}
|
|
}
|
|
}
|
|
|
|
const SEARCH_STRING = "0.0.0-DEV_BUILD";
|
|
function processFile(file) {
|
|
if (file.endsWith(".js") || file.endsWith(".ts")) {
|
|
if (verbose) {
|
|
console.log(`processing ${file}`);
|
|
}
|
|
let content = fs.readFileSync(file);
|
|
content = content.toString().replace(SEARCH_STRING, pkg.version);
|
|
fs.writeFileSync(file, content);
|
|
} else if (verbose) {
|
|
console.log(`skipping ${file}`);
|
|
}
|
|
}
|
|
|
|
processDirectory(path.resolve(process.cwd(), "dist")); |