#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: absolute [CONTENT...] absolute -h EOF } help() { cat <<-'EOF' Options: -h, --help show this message CONTENT a literal string to be prefixed Add domain prefix to build a full URL. If CONTENT is not given, get data from STDIN. Usually used in conjunction with url-for(1). Examples: Get the URL for "static/style.css", and make it absolute: $ url-for 'static/style.css' | absolute https://euandre.org/static/style.css Get the absolute variant of a relative URL: $ absolute "$homepage_url" https://euandre.org/pt/ EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done while getopts 'h' flag; do case "$flag" in h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) . src/lib/base.conf prefix() { sed "s|^/\?|https://$domain/|" } if [ $# = 0 ]; then prefix else for s in "$@"; do printf '%s\n' "$s" | prefix done fi