installSubModules.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const child_process = require("child_process")
  2. const fs = require("fs")
  3. const path = require("path")
  4. const PROJECT_DIR = path.resolve(__dirname, "..");
  5. const MODULES_DIRNAME = path.join(PROJECT_DIR, "modules")
  6. var exitedWithErrorProcessList = [];
  7. function spawnNpmInstallProcess (targetDir) {
  8. child_process.spawn((process.platform === "win32" ? "npm.cmd" : "npm"), ["i"], {
  9. cwd: targetDir,
  10. env: process.env,
  11. stdio: "inherit"
  12. }).on("error", (err) => {
  13. console.log("Error while running 'npm i' in target directory " + targetDir)
  14. console.error(err)
  15. exitedWithErrorProcessList.push(targetDir)
  16. })
  17. }
  18. fs.readdirSync(MODULES_DIRNAME, {withFileTypes: true})
  19. .forEach(e => {
  20. if(!e.isDirectory())return
  21. const MODULE_DIRNAME = path.join(MODULES_DIRNAME, e.name)
  22. if(!fs.existsSync(path.join(MODULE_DIRNAME, "package.json")))return
  23. if(e.name === "discord_spellcheck")return
  24. console.log(`Installing modules in ${e.name}.`)
  25. spawnNpmInstallProcess(MODULE_DIRNAME)
  26. })
  27. const MODULE_DIRNAME = path.join(PROJECT_DIR, "modules", "discord_desktop_core", "core")
  28. const BETTERDISCORD_DIRNAME = path.join(PROJECT_DIR, "BetterDiscordApp")
  29. const DISCORDJS_DIRNAME = path.join(PROJECT_DIR, "DiscordJS")
  30. const LIGHTCORDAPI_DIRNAME = path.join(PROJECT_DIR, "LightcordApi")
  31. spawnNpmInstallProcess(MODULE_DIRNAME)
  32. spawnNpmInstallProcess(BETTERDISCORD_DIRNAME)
  33. spawnNpmInstallProcess(LIGHTCORDAPI_DIRNAME)
  34. spawnNpmInstallProcess(DISCORDJS_DIRNAME)
  35. process.on("beforeExit", () => {
  36. if (exitedWithErrorProcessList.length != 0){
  37. console.error("Failed to run 'npm install' on:\n")
  38. exitedWithErrorProcessList.forEach((val)=>{
  39. console.error(val)
  40. });
  41. }
  42. console.error();
  43. })