diff options
Diffstat (limited to 'hooks/diff.js')
-rw-r--r-- | hooks/diff.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/hooks/diff.js b/hooks/diff.js new file mode 100644 index 0000000..b4b49e4 --- /dev/null +++ b/hooks/diff.js @@ -0,0 +1,42 @@ +const getAllFiles = function(dirPath, arrayOfFiles) { + files = fs.readdirSync(dirPath) + + arrayOfFiles = arrayOfFiles || [] + + files.forEach(function(file) { + if (file !== ".git") { + if (fs.statSync(dirPath + "/" + file).isDirectory()) { + arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles) + } else { + arrayOfFiles.push(dirPath + "/" + file) + } + } + }) + + return arrayOfFiles +} + +module.exports = (pkg1, pkg2) => { + asize1 = getAllFiles((home + "/packages/" + pkg1).replaceAll("\\", "/")).map(i => i.replaceAll("\\", "/").replaceAll((home + "/packages/" + pkg1).replaceAll("\\", "/") + "/", "")).map(i => fs.readFileSync(home + "/packages/" + pkg1 + "/" + i).length).reduce((a, b) => a + b); + asize2 = getAllFiles((home + "/packages/" + pkg2).replaceAll("\\", "/")).map(i => i.replaceAll("\\", "/").replaceAll((home + "/packages/" + pkg2).replaceAll("\\", "/") + "/", "")).map(i => fs.readFileSync(home + "/packages/" + pkg2 + "/" + i).length).reduce((a, b) => a + b); + + asize = asize2 - asize1; + if (asize > 0) { + s = "+"; + } else if (asize < 0) { + s = "-"; + } else { + s = "±"; + } + asize = Math.abs(asize); + + if (asize > 1024) { + if (asize > 1048576) { + return s + (asize / 1048576).toFixed(1) + "M"; + } else { + return s + (asize / 1024).toFixed(1) + "K"; + } + } else { + return s + asize + "B"; + } +}
\ No newline at end of file |