# Nushell Distribution - Quick Start

## 📦 For End Users

### 1. Extract Distribution
```bash
tar -xzf nushell-plugins-distribution.tar.gz
cd nushell-plugins-distribution
```

### 2. See Available Plugins
```bash
./install_from_manifest.nu --list
```

### 3. Install Preferred Option

**Option A: Install Essential Plugins (Recommended)**
```bash
./install_from_manifest.nu --preset essential
```

**Option B: Install Development Tools**
```bash
./install_from_manifest.nu --preset development
```

**Option C: Install Everything**
```bash
./install_from_manifest.nu --all
```

**Option D: Install Specific Plugins**
```bash
./install_from_manifest.nu --select auth kms orchestrator
```

**Option E: Preview First (Dry-Run)**
```bash
./install_from_manifest.nu --all --check
```

### 4. Verify Installation
```bash
nu -c "plugin list"
```

### 5. Restart Shell
```bash
exit && nu
```

---

## 🔧 For Distribution Creators

### 1. Create Distribution Directory
```bash
mkdir -p distribution/bin
# Copy nushell binary and plugins here
cp nu distribution/
cp nu_plugin_* distribution/bin/
```

### 2. Generate Manifest
```bash
./scripts/create_distribution_manifest.nu distribution/bin \
  --output distribution/DISTRIBUTION_MANIFEST.json
```

### 3. Add Installer
```bash
cp scripts/install_from_manifest.nu distribution/
```

### 4. Package Distribution
```bash
tar -czf nushell-plugins-distribution.tar.gz distribution/
```

### 5. Distribute Package
```bash
# Share the tar.gz file with users
# They extract it and run: ./install_from_manifest.nu
```

---

## 🎯 Common Scenarios

### "I want the essential plugins to get started"
```bash
./install_from_manifest.nu --preset essential
```

### "I want to preview what will be installed first"
```bash
./install_from_manifest.nu --all --check
```

### "I want to install only Nushell binary, no plugins"
```bash
./install_from_manifest.nu --nu-only
```

### "I want to install plugins only, skip Nushell"
```bash
./install_from_manifest.nu --plugins-only --all
```

### "I want to install but skip registration"
```bash
./install_from_manifest.nu --all --install-only
# Then manually register: nu -c "plugin add ~/.local/bin/nu_plugin_auth"
```

### "Just register plugins that are already installed"
```bash
./install_from_manifest.nu --all --register-only
```

---

## 📋 Plugin Descriptions

| Plugin | Purpose |
|--------|---------|
| `nu_plugin_auth` | Authentication (JWT, MFA) |
| `nu_plugin_kms` | Encryption & KMS |
| `nu_plugin_orchestrator` | Orchestration operations |
| `nu_plugin_kcl` | KCL configuration |
| `nu_plugin_tera` | Template rendering |
| `nu_plugin_highlight` | Syntax highlighting |
| `nu_plugin_image` | Image processing |
| `nu_plugin_clipboard` | Clipboard operations |
| `nu_plugin_hashes` | Hash functions |
| `nu_plugin_qr_maker` | QR code generation |
| `nu_plugin_fluent` | Localization |
| `nu_plugin_desktop_notifications` | Desktop notifications |
| `nu_plugin_port_extension` | Port extensions |

---

## 🆘 Troubleshooting

**Q: "Manifest not found" error?**
A: Ensure `DISTRIBUTION_MANIFEST.json` is in the same directory as the installer, or use `--manifest` flag:
```bash
./install_from_manifest.nu --manifest /path/to/manifest.json
```

**Q: Plugins installed but not appearing in `plugin list`?**
A: They need to be registered. Use:
```bash
./install_from_manifest.nu --all --register-only
```

**Q: Want to uninstall plugins?**
A: Manually remove them:
```bash
rm ~/.local/bin/nu_plugin_*
nu -c "plugin rm auth kms"  # Remove from config
```

**Q: Something went wrong, want to try again?**
A: Use dry-run first:
```bash
./install_from_manifest.nu --all --check
```

---

## ✨ Next Steps

After installation:

1. **Restart your shell**: `exit && nu`
2. **Verify plugins**: `nu -c "plugin list"`
3. **Use new plugins**: Check plugin documentation
4. **Configure**: Edit `~/.config/nushell/env.nu` if needed

Enjoy your enhanced Nushell environment! 🚀
