vig 0.2.0

Git TUI side-by-side diff viewer
[[repos]]
repo = "builtin"
hooks = [
  { id = "trailing-whitespace" },
  { id = "end-of-file-fixer" },
  { id = "check-toml" },
  { id = "check-yaml" },
  { id = "check-merge-conflict" },
  { id = "check-added-large-files" },
]

[[repos]]
repo = "local"
hooks = [
  { id = "cargo-fmt", name = "cargo fmt", language = "system", entry = "cargo fmt", args = ["--check"], files = "\\.rs$", pass_filenames = false },
  { id = "cargo-clippy", name = "cargo clippy", language = "system", entry = "cargo clippy", args = ["--all-targets", "--", "-D", "warnings"], files = "\\.rs$", pass_filenames = false },
  { id = "check-gif-freshness", name = "check gif freshness", language = "system", entry = "bash", args = ["-c", """
staged=$(git diff --cached --name-only)
tapes=$(echo "$staged" | grep '\\.tape$' || true)
if [ -z "$tapes" ]; then exit 0; fi
for tape in $tapes; do
  gif="assets/$(basename "${tape%.tape}").gif"
  if ! echo "$staged" | grep -qF "$gif"; then
    echo "$tape was modified but $gif is not staged — run: mise run demo:all"
    exit 1
  fi
done
"""], always_run = true, pass_filenames = false },
]