#!/usr/bin/env sh
set -eu
if [ "$#" -ne 1 ]; then
printf 'usage: blog-archive-url URL\n' >&2
exit 2
fi
url=$1
domain=$(printf '%s' "$url" | awk -F[/:] '{print $4}')
hash=$(printf '%s' "$url" | sha1sum | awk '{print $1}')
root=${BLOG_ARCHIVE_DIR:-archives/www}
dir="$root/$domain"
mkdir -p "$dir"
if command -v single-file >/dev/null 2>&1; then
out="$dir/$hash.html"
single-file "$url" "$out"
elif command -v monolith >/dev/null 2>&1; then
out="$dir/$hash.html"
monolith "$url" -o "$out"
elif command -v wget >/dev/null 2>&1; then
out="$dir/$hash"
mkdir -p "$out"
wget --page-requisites --convert-links --adjust-extension --no-host-directories --directory-prefix="$out" "$url"
else
out="$dir/$hash.html"
curl -Lfs "$url" -o "$out"
fi
printf '%s\n' "$out"