#!/usr/bin/env bash

set -euo pipefail

usage() {
  cat <<'EOF'
Usage: brew patch <url>

Fetch a patch URL, calculate its SHA-256, and print a Homebrew `patch do`
block that can be pasted into a formula.

Example:
  brew patch https://github.com/org/repo/commit/abc123.patch
EOF
}

odie() {
  echo "Error: $*" >&2
  exit 1
}

case "${1:-}" in
  "" )
    usage
    exit 1
    ;;
  -h|--help)
    usage
    exit 0
    ;;
esac

[[ $# -eq 1 ]] || odie "expected exactly one patch URL"

url="$1"
sha="$(curl -fsSL "$url" | shasum -a 256 | awk '{print $1}')"

cat <<EOF
  patch do
    url "$url"
    sha256 "$sha"
  end
EOF
