Dont use unreliable inodes for checking file identity (#25008)
* Dont use unreliable inode as unique identifier * Just concat with `\n * Introduce path-overriding code to allow local executables ot be found
This commit is contained in:
parent
f597589e54
commit
657d0119cc
|
@ -10,6 +10,15 @@ const ts = require("./lib/typescript");
|
||||||
const del = require("del");
|
const del = require("del");
|
||||||
const getDirSize = require("./scripts/build/getDirSize");
|
const getDirSize = require("./scripts/build/getDirSize");
|
||||||
|
|
||||||
|
// add node_modules to path so we don't need global modules, prefer the modules by adding them first
|
||||||
|
var nodeModulesPathPrefix = path.resolve("./node_modules/.bin/") + path.delimiter;
|
||||||
|
if (process.env.path !== undefined) {
|
||||||
|
process.env.path = nodeModulesPathPrefix + process.env.path;
|
||||||
|
}
|
||||||
|
else if (process.env.PATH !== undefined) {
|
||||||
|
process.env.PATH = nodeModulesPathPrefix + process.env.PATH;
|
||||||
|
}
|
||||||
|
|
||||||
const host = process.env.TYPESCRIPT_HOST || process.env.host || "node";
|
const host = process.env.TYPESCRIPT_HOST || process.env.host || "node";
|
||||||
|
|
||||||
const locales = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-br", "ru", "tr", "zh-cn", "zh-tw"];
|
const locales = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-br", "ru", "tr", "zh-cn", "zh-tw"];
|
||||||
|
|
|
@ -4,26 +4,19 @@ const { join } = require("path");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find the size of a directory recursively.
|
* Find the size of a directory recursively.
|
||||||
* Symbolic links are counted once (same inode).
|
* Symbolic links can cause a loop.
|
||||||
* @param {string} root
|
* @param {string} root
|
||||||
* @param {Set} seen
|
|
||||||
* @returns {number} bytes
|
* @returns {number} bytes
|
||||||
*/
|
*/
|
||||||
function getDirSize(root, seen = new Set()) {
|
function getDirSize(root) {
|
||||||
const stats = lstatSync(root);
|
const stats = lstatSync(root);
|
||||||
|
|
||||||
if (seen.has(stats.ino)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
seen.add(stats.ino);
|
|
||||||
|
|
||||||
if (!stats.isDirectory()) {
|
if (!stats.isDirectory()) {
|
||||||
return stats.size;
|
return stats.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
return readdirSync(root)
|
return readdirSync(root)
|
||||||
.map(file => getDirSize(join(root, file), seen))
|
.map(file => getDirSize(join(root, file)))
|
||||||
.reduce((acc, num) => acc + num, 0);
|
.reduce((acc, num) => acc + num, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ async function writeGitAttributes() {
|
||||||
|
|
||||||
async function copyWithCopyright(fileName: string) {
|
async function copyWithCopyright(fileName: string) {
|
||||||
const content = await fs.readFile(path.join(source, fileName), "utf-8");
|
const content = await fs.readFile(path.join(source, fileName), "utf-8");
|
||||||
await fs.writeFile(path.join(dest, fileName), copyright + "\r\n" + content);
|
await fs.writeFile(path.join(dest, fileName), copyright + "\n" + content);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function copyFromBuiltLocal(fileName: string) {
|
async function copyFromBuiltLocal(fileName: string) {
|
||||||
|
|
Loading…
Reference in a new issue