#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: url-for [-g] FILE url-for -h EOF } help() { cat <<-'EOF' Options: -g global file, not specific to a single language -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 "about.html", when $base_url is "v2" and $lang is "en": $ url-for 'about.html' /v2/en/about.html Get the URL for "static/favicon.svg", when $base_url is empty: $ url-for -g 'static/favicon.svg' /static/favicon.svg EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done GLOBAL=false while getopts 'gh' flag; do case "$flag" in g) GLOBAL=true ;; h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) . src/development/lib.sh FILE="${1:-}" if [ "$FILE" = '/' ]; then FILE='' fi . src/lib/base-conf # shellcheck source=/dev/null . src/lib/base."${lang:?}".conf if [ "$GLOBAL" = true ]; then L='' else L="${lang:?}/" fi printf '%s%s%s' "${base_url:-/}" "$L" "$FILE"