#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: url-for FILE url-for -h EOF } help() { cat <<-'EOF' Options: -h, --help show this message FILE the path for the URL to be constructed Build an URL for the given FILE, without the $domain part, adding the required $base_url. Examples: Get the URL for "en/about.html", when $base_url is "v2": $ url-for 'about.html' /v2/en/about.html Get the URL for "static/favicon.svg", when $base_url is empty: $ url-for 'img/link.svg' /img/link.svg 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.sh FILE="${1:-}" eval "$(assert_arg "$FILE" 'FILE')" if [ "$FILE" = '/' ]; then FILE='' fi . src/lib/base.conf printf '%s%s' "${base_url:-/}" "$FILE"