# VideoTools Installation Guide

This guide will help you install VideoTools with minimal setup.

## Quick Start (Recommended for Most Users)

### One-Command Installation

```bash
bash install.sh
```

That's it! The installer will:

1. ✅ Check your Go installation
2. ✅ Build VideoTools from source
3. ✅ Install the binary to your system
4. ✅ Set up shell aliases automatically
5. ✅ Configure your shell environment

### After Installation

Reload your shell:

```bash
# For bash users:
source ~/.bashrc

# For zsh users:
source ~/.zshrc
```

Then start using VideoTools:

```bash
VideoTools
```

---

## Installation Options

### Option 1: System-Wide Installation (Recommended for Shared Computers)

```bash
bash install.sh
# Select option 1 when prompted
# Enter your password if requested
```

**Advantages:**
- ✅ Available to all users on the system
- ✅ Binary in standard system path
- ✅ Professional setup

**Requirements:**
- Sudo access (for system-wide installation)

---

### Option 2: User-Local Installation (Recommended for Personal Use)

```bash
bash install.sh
# Select option 2 when prompted (default)
```

**Advantages:**
- ✅ No sudo required
- ✅ Works immediately
- ✅ Private to your user account
- ✅ No administrator needed

**Requirements:**
- None - works on any system!

---

## What the Installer Does

The `install.sh` script performs these steps:

### Step 1: Go Verification
- Checks if Go 1.21+ is installed
- Displays Go version
- Exits with helpful error message if not found

### Step 2: Build
- Cleans previous builds
- Downloads dependencies
- Compiles VideoTools binary
- Validates build success

### Step 3: Installation Path Selection
- Presents two options:
  - System-wide (`/usr/local/bin`)
  - User-local (`~/.local/bin`)
- Creates directories if needed

### Step 4: Binary Installation
- Copies binary to selected location
- Sets proper file permissions (755)
- Validates installation

### Step 5: Shell Environment Setup
- Detects your shell (bash/zsh)
- Adds VideoTools installation path to PATH
- Sources alias script for convenience commands
- Adds to appropriate rc file (`.bashrc` or `.zshrc`)

---

## Convenience Commands

After installation, you'll have access to:

```bash
VideoTools              # Run VideoTools directly
VideoToolsRebuild       # Force rebuild from source
VideoToolsClean         # Clean build artifacts and cache
```

---

## Requirements

### Essential
- **Go 1.21 or later** - https://go.dev/dl/
- **Bash or Zsh** shell

### Optional
- **FFmpeg** (for actual video encoding)
  ```bash
  ffmpeg -version
  ```

### System
- Linux, macOS, or WSL (Windows Subsystem for Linux)
- At least 2 GB free disk space
- Stable internet connection (for dependencies)

---

## Troubleshooting

### "Go is not installed"

**Solution:** Install Go from https://go.dev/dl/

```bash
# After installing Go, verify:
go version
```

### Build Failed

**Solution:** Check build log for specific errors:

```bash
bash install.sh
# Look for error messages in the build log output
```

### Installation Path Not in PATH

If you see this warning:

```
Warning: ~/.local/bin is not in your PATH
```

**Solution:** Reload your shell:

```bash
source ~/.bashrc    # For bash
source ~/.zshrc     # For zsh
```

Or manually add to your shell configuration:

```bash
# Add this line to ~/.bashrc or ~/.zshrc:
export PATH="$HOME/.local/bin:$PATH"
```

### "Permission denied" on binary

**Solution:** Ensure file has correct permissions:

```bash
chmod +x ~/.local/bin/VideoTools
# or for system-wide:
ls -l /usr/local/bin/VideoTools
```

### Aliases Not Working

**Solution:** Ensure alias script is sourced:

```bash
# Check if this line is in your ~/.bashrc or ~/.zshrc:
source /path/to/VideoTools/scripts/alias.sh

# If not, add it manually:
echo 'source /path/to/VideoTools/scripts/alias.sh' >> ~/.bashrc
source ~/.bashrc
```

---

## Advanced: Manual Installation

If you prefer to install manually:

### Step 1: Build

```bash
cd /path/to/VideoTools
CGO_ENABLED=1 go build -o VideoTools .
```

### Step 2: Install Binary

```bash
# User-local installation:
mkdir -p ~/.local/bin
cp VideoTools ~/.local/bin/VideoTools
chmod +x ~/.local/bin/VideoTools

# System-wide installation:
sudo cp VideoTools /usr/local/bin/VideoTools
sudo chmod +x /usr/local/bin/VideoTools
```

### Step 3: Setup Aliases

```bash
# Add to ~/.bashrc or ~/.zshrc:
source /path/to/VideoTools/scripts/alias.sh

# Add to PATH if needed:
export PATH="$HOME/.local/bin:$PATH"
```

### Step 4: Reload Shell

```bash
source ~/.bashrc    # for bash
source ~/.zshrc     # for zsh
```

---

## Uninstallation

### If Installed System-Wide

```bash
sudo rm /usr/local/bin/VideoTools
```

### If Installed User-Local

```bash
rm ~/.local/bin/VideoTools
```

### Remove Shell Configuration

Remove these lines from `~/.bashrc` or `~/.zshrc`:

```bash
# VideoTools installation path
export PATH="$HOME/.local/bin:$PATH"

# VideoTools convenience aliases
source "/path/to/VideoTools/scripts/alias.sh"
```

---

## Verification

After installation, verify everything works:

```bash
# Check binary is accessible:
which VideoTools

# Check version/help:
VideoTools --help

# Check aliases are available:
type VideoToolsRebuild
type VideoToolsClean
```

---

## Getting Help

For issues or questions:

1. Check **BUILD_AND_RUN.md** for build-specific help
2. Check **DVD_USER_GUIDE.md** for usage help
3. Review installation logs in `/tmp/videotools-build.log`
4. Check shell configuration files for errors

---

## Next Steps

After successful installation:

1. **Read the Quick Start Guide:**
   ```bash
   cat DVD_USER_GUIDE.md
   ```

2. **Launch VideoTools:**
   ```bash
   VideoTools
   ```

3. **Convert your first video:**
   - Go to Convert module
   - Load a video
   - Select "DVD-NTSC (MPEG-2)" or "DVD-PAL (MPEG-2)"
   - Click "Add to Queue"
   - Click "View Queue" → "Start Queue"

---

## Platform-Specific Notes

### Linux (Ubuntu/Debian)

Installation is fully automatic. The script handles all steps.

### Linux (Arch/Manjaro)

Same as above. Installation works without modification.

### macOS

Installation works but requires Xcode Command Line Tools:

```bash
xcode-select --install
```

### Windows (WSL)

Installation works in WSL environment. Ensure you have WSL with Linux distro installed.

---

Enjoy using VideoTools! 🎬

