const { readdirSync, cpSync, existsSync } = require('node:fs');
const path = require('node:path');

const pluginsDir = path.join(__dirname, '..', 'plugins');
const externalPluginsDir = path.join(__dirname, '..', 'plugins-external');

// Get list of external (non-bundled) plugins
const externalPlugins = new Set();
if (existsSync(externalPluginsDir)) {
  for (const name of readdirSync(externalPluginsDir)) {
    if (!name.startsWith('.')) {
      externalPlugins.add(name);
    }
  }
}

console.log('Copying Yaak plugins to', pluginsDir);

for (const name of readdirSync(pluginsDir)) {
  const dir = path.join(pluginsDir, name);
  if (name.startsWith('.')) continue;
  if (externalPlugins.has(name)) {
    console.log(`Skipping ${name} (external plugin)`);
    continue;
  }
  const destDir = path.join(__dirname, '../crates-tauri/yaak-app/vendored/plugins/', name);
  console.log(`Copying ${name} to ${destDir}`);
  cpSync(path.join(dir, 'package.json'), path.join(destDir, 'package.json'));
  cpSync(path.join(dir, 'build'), path.join(destDir, 'build'), { recursive: true });
}
