Add README, license, and check script

This commit is contained in:
2025-12-31 22:39:25 -05:00
parent 7188cee3e2
commit 0e751a407d
3 changed files with 98 additions and 0 deletions

72
README.md Normal file
View File

@@ -0,0 +1,72 @@
# Vid-Repair
Vid-Repair is a crossplatform Rust CLI that scans video files for container/stream/decode problems and applies safe repairs using system `ffmpeg`/`ffprobe`.
## Features
- Scan: ffprobe metadata + ffmpeg decode pass
- Datadriven rulesets (TOML) with linting
- Safe fix planning (remux/faststart) + optional aggressive reencode
- Atomic replace + optional keeporiginal
- Watch mode with settle window
- Text output by default, JSON with schema version
## Requirements
- `ffmpeg` and `ffprobe` available on PATH
## Install
```bash
cargo build --release
```
## Usage
```bash
# Scan
vid-repair scan /path/to/videos
# Scan and watch for new files
vid-repair scan --watch /path/to/videos
# Fix (safe policy, in-place)
vid-repair fix /path/to/videos
# Fix with aggressive policy
vid-repair fix --policy aggressive /path/to/videos
# JSON output
vid-repair scan --json /path/to/videos
# Lint rulesets
vid-repair rules lint
```
Exit codes:
- `0` no issues
- `1` issues found
- `2` fix failed
- `3` fatal error
## Config
On first run, a commented TOML config is created in the XDG config directory:
- Linux: `~/.config/vid-repair/config.toml`
- macOS: `~/Library/Application Support/vid-repair/config.toml`
- Windows: `%APPDATA%/vid-repair/config.toml`
CLI flags override config values.
## Rulesets
Rules are stored in `rulesets/*.toml`. Use `vid-repair rules lint` before shipping changes.
## Fixtures
Generate fixtures (gitignored) with:
```bash
scripts/generate_fixtures.sh
```