| 29 | const BOOLEAN_OPTIONS = new Set(["--force"]); |
| 30 | |
| 31 | function printUsage() { |
| 32 | console.log(`Usage: node scripts/obsidian-e2e-cli.mjs [instance options] [--] <obsidian command...> |
| 33 | |
| 34 | Examples: |
| 35 | pnpm run obsidian:e2e -- quickadd:list |
| 36 | pnpm run obsidian:e2e -- dev:errors |
| 37 | pnpm run obsidian:e2e -- --vault quickadd-my-worktree eval code='app.vault.getName()' |
| 38 | |
| 39 | Instance options: |
| 40 | --vault <name> Vault/profile name. Defaults to quickadd-<worktree>. |
| 41 | --root <path> Directory that contains provisioned vaults. Defaults to .obsidian-e2e-vaults. |
| 42 | --worktree <path> QuickAdd worktree to link plugin files from. Defaults to cwd. |
| 43 | --data <path> Optional QuickAdd data.json seed to copy on first provision. |
| 44 | --profile-root <path> Directory for per-vault Obsidian HOME profiles. Defaults to /tmp/quickadd-obsidian-e2e. |
| 45 | --obsidian-app <name> Obsidian app name for macOS open. Defaults to Obsidian. |
| 46 | --obsidian-bin <path> Obsidian CLI executable. Defaults to obsidian. |
| 47 | --force Recreate plugin symlinks if they already exist. |
| 48 | --help Show this help. |
| 49 | `); |
| 50 | } |
| 51 | |
| 52 | export function parseArgs(argv) { |
| 53 | const instanceArgs = []; |