74 lines
1.7 KiB
JavaScript
74 lines
1.7 KiB
JavaScript
#!/usr/bin/env node
|
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
|
|
/**
|
|
* This script will
|
|
* - Globally update the docker version throughout the repo
|
|
*/
|
|
|
|
const shell = require("shelljs");
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const projectRoot = path.join(__dirname, "..", "..");
|
|
|
|
const ignorePatterns = [
|
|
"git",
|
|
"node_modules",
|
|
".anchor",
|
|
".switchboard",
|
|
".archive",
|
|
".docusaurus",
|
|
"website/public",
|
|
"target/rls",
|
|
"target/release",
|
|
"target/bpfel-unknown-unknown",
|
|
"target/bpfel-unknown-unknown",
|
|
".fingerprint",
|
|
];
|
|
const allowedExtensions = [".md", ".mdx", ".js", ".json", ".yml", ".ts"];
|
|
|
|
// Regex: dev-v2-[0-9]{1,2}-[0-9]{1,2}-[0-9]{1,2}[A-Za-z]?
|
|
shell.cd(projectRoot);
|
|
|
|
const latestVersionRegex = fs
|
|
.readFileSync(path.join(projectRoot, "Oracle_Version.md"), "utf8")
|
|
.match(/dev-v2-[0-9]{1,2}-[0-9]{1,2}-[0-9]{1,2}[A-Za-z]?/);
|
|
|
|
if (!latestVersionRegex) {
|
|
throw new Error(
|
|
`Failed to find the latest oracle version in Oracle_Version.md`
|
|
);
|
|
}
|
|
const latestVersion = latestVersionRegex[0];
|
|
console.log(`Latest Oracle Version: ${latestVersion}`);
|
|
|
|
shell.find(".").forEach((filePath) => {
|
|
// check for ignore patterns
|
|
for (const pattern of ignorePatterns) {
|
|
if (filePath.indexOf(pattern) !== -1) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
// check if its a directory
|
|
if (fs.statSync(filePath).isDirectory()) {
|
|
return;
|
|
}
|
|
|
|
// check if the extension is applicable
|
|
if (!allowedExtensions.includes(path.parse(filePath).ext)) {
|
|
return;
|
|
}
|
|
|
|
// global find and replace
|
|
try {
|
|
shell.sed(
|
|
"-i",
|
|
/dev-v2-[0-9]{1,2}-[0-9]{1,2}-[0-9]{1,2}[A-Za-z]?/g,
|
|
latestVersion,
|
|
filePath
|
|
);
|
|
} catch {}
|
|
});
|