diff options
Diffstat (limited to 'bundle/scripts/depcheck.js')
-rw-r--r-- | bundle/scripts/depcheck.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/bundle/scripts/depcheck.js b/bundle/scripts/depcheck.js new file mode 100644 index 00000000..1957f794 --- /dev/null +++ b/bundle/scripts/depcheck.js @@ -0,0 +1,56 @@ +const path = require("path"); +const fs = require("fs"); +const { env } = require("process"); +const { execSync } = require("child_process"); +const { argv, stdout, exit } = require("process"); + +const { execIn, getLines, parts } = require("./utils"); + +let npmi_extra_flags = ""; + +const resolveminor = argv.includes("resolveminor"); +if(argv.includes("nobuild")) npmi_extra_flags += "--ignore-scripts "; + +parts.forEach((part) => { + let partDir = path.join(__dirname, "..", "..", part); + let distDir = path.join(partDir, "dist"); + console.log(`Checking updates for ${part} (${partDir})`); + if(part == "bundle") { + execIn(`npm run syncdeps`, partDir) + } + if(resolveminor) { + fs.rmSync(path.join(partDir, "node_modules"), { + recursive: true, + force: true, + }); + execIn(`npm i --save --no-fund --no-audit --no-package-lock ${npmi_extra_flags}`, partDir) + } + let x = [ + [ + "pkg", + { + current: "1.0", + wanted: "2.0", + latest: "2.0", + dependent: "cdn", + location: "/usr/src/fosscord/bundle/node_packages/pkg", + }, + ], + ]; + x = Object.entries( + JSON.parse(execIn("npm outdated --json", partDir)) + ); + x.forEach((a) => { + let pkgname = a[0]; + let pkginfo = a[1]; + if(!pkginfo.current) + console.log(`MISSING ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted} (latest: ${pkginfo.latest})`); + else if(pkginfo.latest != pkginfo.wanted){ + if(pkginfo.current != pkginfo.wanted) + console.log(`MINOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted}`); + console.log(`MAJOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.latest}`); + } + else + console.log(`MINOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted}`); + }); +}); |