threepipe
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

utils.mjs 807B

123456789101112131415161718192021222324
  1. import path from "node:path";
  2. import fs from "node:fs";
  3. import {execSync} from "node:child_process";
  4. export function loopPluginDirs(callback){
  5. const __dirname = path.dirname(new URL(import.meta.url).pathname);
  6. const pluginsDir = path.join(__dirname, '../plugins')
  7. const pluginFolders = fs.readdirSync(pluginsDir)
  8. for (const pluginFolder of pluginFolders) {
  9. const pluginDir = path.join(pluginsDir, pluginFolder)
  10. const packageJsonPath = path.join(pluginDir, 'package.json')
  11. if (!fs.existsSync(packageJsonPath)) continue;
  12. callback(pluginDir)
  13. }
  14. }
  15. export function execEachPlugin(command){
  16. loopPluginDirs((pluginDir) => {
  17. console.log(`Executing ${command} in ${pluginDir}`)
  18. execSync(command, {cwd: pluginDir, stdio: 'inherit'})
  19. })
  20. }