nushell-plugins/guides/update-installed-plugins-guide.md

1 line
10 KiB
Markdown
Raw Permalink Normal View History

# Update Installed Plugins Guide\n\n## Overview\n\nThe `scripts/update_installed_plugins.nu` script manages updating Nushell plugins that are already installed in `~/.local/bin`. It:\n\n1. **Detects** which plugins are installed\n2. **Matches** them with source code in the repository\n3. **Removes** old plugin binaries\n4. **Rebuilds** plugins from source\n5. **Installs** new versions to `~/.local/bin`\n6. **Registers** plugins with Nushell\n\nThis is different from `update_all_plugins.nu` which only updates Cargo.toml dependencies.\n\n## Quick Start\n\n### Update All Installed Plugins\n\n```bash\n# Check what would be updated (dry-run)\n./scripts/update_installed_plugins.nu --check\n\n# Update all installed plugins (with confirmation)\n./scripts/update_installed_plugins.nu\n\n# Update with verification\n./scripts/update_installed_plugins.nu --verify\n\n# Force rebuild (ignore cache)\n./scripts/update_installed_plugins.nu --force\n```\n\n### Update Specific Plugin\n\n```bash\n# Check if plugin can be updated\n./scripts/update_installed_plugins.nu --plugin nu_plugin_auth --check\n\n# Update specific plugin\n./scripts/update_installed_plugins.nu --plugin nu_plugin_auth\n\n# Update specific plugin without registering\n./scripts/update_installed_plugins.nu --plugin nu_plugin_auth --no-register\n```\n\n## Full Command Reference\n\n### Basic Options\n\n| Option | Short | Purpose | Default |\n|--------|-------|---------|---------|\n| `--check` | `-c` | Dry-run mode, no actual changes | `false` |\n| `--verify` | `-v` | Verify registration after update | `false` |\n| `--force` | `-f` | Force rebuild (clean build artifacts) | `false` |\n| `--plugin NAME` | - | Update only specific plugin | All installed |\n| `--no-register` | - | Skip registration step | `false` |\n\n### Examples\n\n```bash\n# 1. Dry-run to see what would happen\n./scripts/update_installed_plugins.nu --check\n\n# 2. Update all plugins with verification\n./scripts/update_installed_plugins.nu --verify\n\n# 3. Update with force rebuild and verification\n./scripts/update_installed_plugins.nu --force --verify\n\n# 4. Update specific plugin\n./scripts/update_installed_plugins.nu --plugin nu_plugin_kms\n\n# 5. Check specific plugin only\n./scripts/update_installed_plugins.nu --plugin nu_plugin_orchestrator --check\n\n# 6. Update and skip registration (register manually later)\n./scripts/update_installed_plugins.nu --no-register\n```\n\n## What This Script Does\n\n### Step 1: Detection\n\n```plaintext\n📋 Step 1: Detecting installed plugins...\nFound 3 installed plugin(s):\n • nu_plugin_auth (installed: /Users/user/.local/bin/nu_plugin_auth)\n • nu_plugin_kms (installed: /Users/user/.local/bin/nu_plugin_kms)\n • nu_plugin_orchestrator (installed: /Users/user/.local/bin/nu_plugin_orchestrator)\n```\n\nScans `~/.local/bin` for executables matching `nu_plugin_*` pattern.\n\n### Step 2: Source Discovery\n\n```plaintext\n🔍 Step 2: Finding plugin sources...\nFound 5 plugin source(s)\n```\n\nFinds all `nu_plugin_*` directories in the current repository.\n\n### Step 3: Matching\n\n```plaintext\n🔗 Step 3: Matching installed plugins with sources...\nReady to update 3 plugin(s):\n • nu_plugin_auth\n Source: /path/to/nu_plugin_auth\n Target: ~/.local/bin/nu_plugin_auth\n```\n\nMatches installed plugins with their source directories.\n\n### Step 4: Removal\n\n```plaintext\n🗑 Step 4: Removing old plugin binaries...\n Removing: nu_plugin_auth\n ✓ Deleted\n```\n\nRemoves old plugin binaries from `~/.local/bin`.\n\n### Step 5: Building\n\n```plaintext\n🔨 Step 5: Building updated plugins...\n Building: nu_plugin_auth\n Cleaning build artifacts...\n Compiling...\n ✓ Built successfully\n```\n\nRebuilds plugins with `cargo build --release` (optional cleanup with `--force`).\n\n### Step 6: Installation\n\n```plaintext\n📦 Step 6: Installing new plugin binaries...\n Installing: nu_plugin_auth\n ✓ Installed to ~/.local/bin/nu_plugin_auth\n```\n\nCopies new binaries to `~/.local/bin` with execute permission.\n\n### Step 7: Registratio