| 1234567891011121314151617181920212223242526 |
- import path from 'node:path';
- import fs from 'node:fs';
- import {execSync} from 'node:child_process';
-
- export function loopPluginDirs (callback) {
- const pathname = new URL(import.meta.url).pathname.replace(/^\/([A-Za-z]:\/)/, '$1')
- const __dirname = path.dirname(pathname);
- const pluginsDir = path.resolve(__dirname, '../plugins')
- const pluginFolders = fs.readdirSync(pluginsDir)
-
- for (const pluginFolder of pluginFolders) {
- const pluginDir = path.join(pluginsDir, pluginFolder)
- const packageJsonPath = path.join(pluginDir, 'package.json')
- if (!fs.existsSync(packageJsonPath)) continue;
- callback(pluginDir, pluginFolder)
- }
-
- }
-
- export function execEachPlugin (command, templates = false) {
- loopPluginDirs((pluginDir, pluginFolder) => {
- if(!templates && pluginFolder.startsWith('plugin-template-')) return;
- console.log(`Executing ${command} in ${pluginDir}`)
- execSync(command, {cwd: pluginDir, stdio: 'inherit'})
- })
- }
|