diff options
Diffstat (limited to 'src/conf')
-rwxr-xr-x | src/conf | 43 |
1 files changed, 30 insertions, 13 deletions
@@ -3,10 +3,29 @@ set -euo pipefail usage() { - echo 'Usage: conf BASECONF [GLOBALCONF FILENAME.adoc]' + echo <<-'EOF' + Usage: + conf GLOBALCONF FILENAME.adoc + conf -G BASECONF > GLOBALCONF + EOF } +GENERATE=false +while getopts 'G' flag; do + case "$flag" in + (G) + GENERATE=true + ;; + (*) + usage >&2 + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + + needs() { if [ -z "${1:-}" ]; then printf '%s\n' "$2" >&2 @@ -27,11 +46,10 @@ dateiso() { datex "$1" -u "$DATE_Is" } -BASECONF="${1:-}" -GLOBALCONF="${2:-}" -FILENAME="${3:-}" -eval "$(assert-arg -- "$BASECONF" 'BASECONF')" -. "$(realpath -- "$BASECONF")" +CONF="${1:-}" +FILENAME="${2:-}" +eval "$(assert-arg -- "$CONF" 'CONF')" +. "$(realpath -- "$CONF")" needs "${url_pre:-}" 'Missing required $url_pre (e.g. https://example.com)' @@ -49,7 +67,7 @@ needs "${sourcecode_url:-}" 'Missing required $sourcecode_url' needs "${sourcecode_url_prefix:-}" 'Missing required $sourcecode_url_prefix' -if [ -z "$GLOBALCONF" ]; then +if [ "$GENERATE" = true ]; then now_iso="$(dateiso "@${SOURCE_DATE_EPOCH:-$(date '+%s')}" | shesc)" feed_title_html="$(printf '%s\n' "$feed_title" | htmlesc | shesc)" site_name_html="$( printf '%s\n' "$site_name" | htmlesc | shesc)" @@ -58,6 +76,7 @@ if [ -z "$GLOBALCONF" ]; then fi logo_alt="$(printf '%s\n' "$logo_alt" | htmlesc | shesc)" + cat -- "$CONF" cat <<-EOF export now_iso="$now_iso" export feed_title_html="$feed_title_html" @@ -69,9 +88,7 @@ if [ -z "$GLOBALCONF" ]; then exit fi -eval "$(assert-arg -- "$BASECONF" 'BASECONF')" eval "$(assert-arg -- "$FILENAME" 'FILENAME')" -. "$(realpath -- "$GLOBALCONF")" trap 'rm -f -- "$FILENAME".embedded-config' EXIT @@ -85,8 +102,8 @@ trap 'rm -f -- "$FILENAME".embedded-config' EXIT is_article() { printf '%s\n' "$FILENAME" | grep -qE \ - "^${root_dir}[-a-zA-Z0-9/]*/[0-9]{4}/[0-9]{2}/[0-9]{2}/[-A-Za-z0-9]+\.adoc$" - #^ src /blog/d/a /1970 /01 /01/ /some-file-N4me.adoc + '^[-a-zA-Z0-9/]*/[0-9]{4}/[0-9]{2}/[0-9]{2}/[-A-Za-z0-9]+\.adoc$' + #^src/a/b/c/ /1970 /01 /01/ /some-file-N4me.adoc } base_url() { @@ -109,7 +126,7 @@ datefmt() { if [ -z "${root_dir:-}" ]; then - root_dir="$(dirname -- "$BASECONF")" + root_dir="$(dirname -- "$CONF")" fi root_dir="${root_dir%/}" @@ -120,7 +137,7 @@ img_dir="${img_dir%/}" UNPREFIXED="${FILENAME#$root_dir/}" -cat "$BASECONF" "$GLOBALCONF" +cat -- "$CONF" date_iso= date_formatted= |