threepipe
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

vor 1 Jahr
vor 1 Jahr
vor 1 Jahr
vor 2 Jahren
1234567891011121314151617181920212223242526
  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 pathname = new URL(import.meta.url).pathname.replace(/^\/([A-Za-z]:\/)/, '$1')
  6. const __dirname = path.dirname(pathname);
  7. const pluginsDir = path.resolve(__dirname, '../plugins')
  8. const pluginFolders = fs.readdirSync(pluginsDir)
  9. for (const pluginFolder of pluginFolders) {
  10. const pluginDir = path.join(pluginsDir, pluginFolder)
  11. const packageJsonPath = path.join(pluginDir, 'package.json')
  12. if (!fs.existsSync(packageJsonPath)) continue;
  13. callback(pluginDir, pluginFolder)
  14. }
  15. }
  16. export function execEachPlugin (command, templates = false) {
  17. loopPluginDirs((pluginDir, pluginFolder) => {
  18. if(!templates && pluginFolder.startsWith('plugin-template-')) return;
  19. console.log(`Executing ${command} in ${pluginDir}`)
  20. execSync(command, {cwd: pluginDir, stdio: 'inherit'})
  21. })
  22. }