#!/usr/bin/env sh set -eu files=$(find . \( -path '*/.git' -o -path '*/node_modules' -o -path '*/.next' -o -path '*/_site' \) -prune -o -type f \( -name '*.md' -o -name '*.mdx' -o -name '*.org' \) -print) count=$(printf '%s\n' "$files" | sed '/^$/d' | wc -l | tr -d ' ') words=$(printf '%s\n' "$files" | xargs -r wc -w | awk 'END{print $1+0}') links=$(printf '%s\n' "$files" | xargs -r rg --no-filename -o 'https?://[^\]\[()<>"'\''[:space:]]+' 2>/dev/null | wc -l | tr -d ' ') domains=$(printf '%s\n' "$files" | xargs -r rg --no-filename -o 'https?://[^\]\[()<>"'\''[:space:]]+' 2>/dev/null | awk -F/ '{print $3}' | sort -u | wc -l | tr -d ' ') todos=$(printf '%s\n' "$files" | xargs -r rg -n 'TK|TODO|FIXME|XXX|SOURCE\?' 2>/dev/null | wc -l | tr -d ' ') printf 'posts: %s\n' "$count" printf 'words: %s\n' "$words" printf 'links: %s\n' "$links" printf 'domains: %s\n' "$domains" printf 'flags: %s\n' "$todos" printf '\nTop domains:\n' printf '%s\n' "$files" | xargs -r rg --no-filename -o 'https?://[^\]\[()<>"'\''[:space:]]+' 2>/dev/null | awk -F/ '{print $3}' | sed 's/^www\.//' | sort | uniq -c | sort -nr | sed -n '1,25p'