#!/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"