import { existsSync, lstatSync, rmSync } from 'fs'; import { resolve } from 'path'; const manifest = await Bun.file('manifest.json').json(); const pluginId: string = manifest.id; const vaultPath = process.argv[2] || process.env.OBSIDIAN_VAULT; if (!vaultPath) { console.error( 'Usage: bun run scripts/uninstall-from-vault.ts \n' + ' or set OBSIDIAN_VAULT environment variable', ); process.exit(1); } const resolvedVault = resolve(vaultPath); const pluginsDir = resolve(resolvedVault, '.obsidian', 'plugins'); const targetDir = resolve(pluginsDir, pluginId); if (!existsSync(targetDir)) { console.log(`Plugin not installed: ${targetDir} does not exist`); process.exit(0); } if (lstatSync(targetDir).isSymbolicLink()) { console.error(`${targetDir} is a symlink, not a copied install. Use 'vault:uninstall-symlink' instead.`); process.exit(1); } rmSync(targetDir, { recursive: true }); console.log(`Removed: ${targetDir}`);