~kris/dots

srice

ref: 9f828eb14bdd54d2c4fd8a3b2c90253021df3152 srice/.local/bin/blog-linkrot -rwxr-xr-x 551 bytes
9f828eb1 — Kris Yotam mksh: backslash-escape commands in history hook to bypass module aliases (wc=tokei, tr=transmission-remote, cat=bat) 2 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env sh
set -eu

blog-links "$@" | cut -f1 | sort -u |
while IFS= read -r url; do
  [ -n "$url" ] || continue
  code=$(curl -LIs --max-time 15 --user-agent 'blog-linkrot/1.0' "$url" 2>/dev/null | awk '/^HTTP/{c=$2} END{print c}')
  if [ -z "$code" ] || [ "$code" = "405" ]; then
    code=$(curl -Ls -o /dev/null -w '%{http_code}' --max-time 20 --user-agent 'blog-linkrot/1.0' "$url" 2>/dev/null || true)
  fi
  case "$code" in
    2*|3*) printf 'ok %s %s\n' "$code" "$url" ;;
    *) printf 'bad %s %s\n' "${code:-000}" "$url" ;;
  esac
done