mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-25 03:33:33 +01:00
61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
/*
|
|
Automatically appends our license preamble to each source file.
|
|
Does not prepend if preamble already exists.
|
|
Does not replace if change in util/licensePreamble.txt was made.
|
|
Does not prepend is file contains @fc-license-skip
|
|
*/
|
|
|
|
const Path = require("path");
|
|
const fs = require("fs");
|
|
const walk = require("./util/walk");
|
|
|
|
const SPACEBAR_SOURCE_DIR = Path.join(__dirname, "..", "src");
|
|
const SPACEBAR_SCRIPTS_DIR = Path.join(__dirname);
|
|
const SPACEBAR_LICENSE_PREAMBLE = fs
|
|
.readFileSync(Path.join(__dirname, "util", "licensePreamble.txt"))
|
|
.toString()
|
|
.split("\r") // remove windows bs
|
|
.join("") // ^
|
|
.split("\n")
|
|
.map((x) => `\t${x}`)
|
|
.join("\n");
|
|
|
|
const languageCommentStrings = {
|
|
js: ["/*", "*/"],
|
|
ts: ["/*", "*/"],
|
|
};
|
|
|
|
const addToDir = (dir) => {
|
|
const files = walk(dir, Object.keys(languageCommentStrings));
|
|
|
|
for (let path of files) {
|
|
const file = fs.readFileSync(path).toString().split("\r").join("");
|
|
const fileType = path.slice(path.lastIndexOf(".") + 1);
|
|
const commentStrings = languageCommentStrings[fileType];
|
|
if (!commentStrings) continue;
|
|
|
|
const preamble =
|
|
commentStrings[0] +
|
|
"\n" +
|
|
SPACEBAR_LICENSE_PREAMBLE +
|
|
"\n" +
|
|
commentStrings[1];
|
|
|
|
if (file.startsWith(preamble)) {
|
|
continue;
|
|
}
|
|
|
|
// This is kind of lame.
|
|
if (file.includes("@fc-license-skip") && path != __filename) {
|
|
console.log(`skipping ${path} as it has a different license.`);
|
|
continue;
|
|
}
|
|
|
|
console.log(`writing to ${path}`);
|
|
fs.writeFileSync(path, preamble + "\n\n" + file);
|
|
}
|
|
};
|
|
|
|
addToDir(SPACEBAR_SOURCE_DIR);
|
|
addToDir(SPACEBAR_SCRIPTS_DIR);
|