diff options
author | EuAndreh <eu@euandre.org> | 2024-11-17 18:38:09 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-11-17 18:38:09 -0300 |
commit | 9cd0311135e6f17fdc23d4cd521fc3eebf4c553e (patch) | |
tree | 77bdb723f53f5374dea2cfc0006efd2ccf707827 | |
parent | src/html: Support emitting only header or footer (diff) | |
download | mkwb-9cd0311135e6f17fdc23d4cd521fc3eebf4c553e.tar.gz mkwb-9cd0311135e6f17fdc23d4cd521fc3eebf4c553e.tar.xz |
Improve support for multiple collections
Diffstat (limited to '')
-rwxr-xr-x | src/conf | 43 | ||||
-rwxr-xr-x | src/feed | 14 | ||||
-rwxr-xr-x | src/indexbody | 6 | ||||
-rwxr-xr-x | src/sortdata | 3 |
4 files changed, 41 insertions, 25 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= @@ -3,14 +3,14 @@ set -euo pipefail usage() { - echo 'Usage: feed COMBINEDCONF FILENAME.sortdata...' + echo 'Usage: feed GLOBALCONF FILENAME.xmldeps' } -COMBINEDCONF="${1:-}" -FILES="${2:-}" -eval "$(assert-arg -- "$COMBINEDCONF" 'COMBINEDCONF')" -eval "$(assert-arg -- "$FILES" 'FILENAME.sortdata...')" -. "$(realpath -- "$COMBINEDCONF")" +GLOBALCONF="${1:-}" +FILENAME="${2:-}" +eval "$(assert-arg -- "$GLOBALCONF" 'GLOBALCONF')" +eval "$(assert-arg -- "$FILENAME" 'FILENAME.xmldeps')" +. "$(realpath -- "$GLOBALCONF")" shift @@ -39,7 +39,7 @@ post() { } pre -find "$@" | +cat "$FILENAME" | xargs cat | sort -nr | xargs cat | diff --git a/src/indexbody b/src/indexbody index 93b4f90..51090a6 100755 --- a/src/indexbody +++ b/src/indexbody @@ -3,19 +3,17 @@ set -euo pipefail usage() { - echo 'Usage: index FILENAME.conf FILENAME.sortdata...]' + echo 'Usage: index FILENAME.conf' } FILENAME="${1:-}" -FILES="${2:-}" eval "$(assert-arg -- "$FILENAME" 'FILENAME.conf')" -eval "$(assert-arg -- "$FILES" 'FILENAME.sortdata...')" . "$(realpath -- "$FILENAME")" shift printf ' <ol class="collection-list">\n' -find "$@" | +cat "${FILENAME%.*}.htmldeps" | xargs cat | sort -nr | xargs cat | diff --git a/src/sortdata b/src/sortdata index df64e9f..c15d13c 100755 --- a/src/sortdata +++ b/src/sortdata @@ -11,6 +11,7 @@ eval "$(assert-arg -- "$FILENAME" 'FILENAME.conf')" . "$(realpath -- "$FILENAME")" -f=src/"$date_iso"-"${sort:-0}".sortdata +DIR="$(dirname "$FILENAME")"/../../.. +f="$DIR"/"$date_iso"-"${sort:-0}".sortdata printf '%s\n' "$FILENAME" > "$f" printf '%s\n' "$f" |