diff options
Diffstat (limited to '')
-rwxr-xr-x | v2/src/development/getconf.sh | 116 |
1 files changed, 68 insertions, 48 deletions
diff --git a/v2/src/development/getconf.sh b/v2/src/development/getconf.sh index aa90706..3f7ccd2 100755 --- a/v2/src/development/getconf.sh +++ b/v2/src/development/getconf.sh @@ -73,58 +73,78 @@ escape() { sed 's|\([`"$]\)|\\\1|g' } -{ - tee "$FILENAME".tmp < src/lib/base-conf - DELIMITER=0 - while read -r line; do - if [ "$line" = '---' ]; then - DELIMITER=$((DELIMITER + 1)) - continue - fi - if [ "$DELIMITER" = 2 ]; then - break - fi - if [ -z "$line" ]; then - continue - fi - - KEY="$( printf '%s' "$line" | cut -d: -f1)" - VALUE="$(printf '%s' "$line" | cut -d: -f2- | sed 's|^ ||' | escape)" - printf '%s="%s"\n' "$KEY" "$VALUE" - done < "$FILENAME" | tee -a "$FILENAME".tmp - # shellcheck source=/dev/null - . "$FILENAME".tmp - - cat src/lib/base."${lang:?}".conf - # shellcheck source=/dev/null - . src/lib/base."$lang".conf - - if [ -z "${title:-}" ]; then - title="${site_name:?}" - printf 'title="%s"\n' "$(printf '%s' "$title" | escape)" +tee "$FILENAME".tmp < src/lib/base-conf +DELIMITER=0 +while read -r line; do + if [ "$line" = '---' ]; then + DELIMITER=$((DELIMITER + 1)) + continue fi - - if [ -z "${date:-}" ]; then - printf 'date_formatted="%s"\n' "$(LANG="$lang" date -d "${date:?}" +"${date_fmt:?}" | escape)" + if [ "$DELIMITER" = 2 ]; then + break + fi + if [ -z "$line" ]; then + continue fi - url_part="$(printf '%s' "${FILENAME%.md}.html" | sed 's|^src/content/||')" + KEY="$( printf '%s' "$line" | cut -d: -f1)" + VALUE="$(printf '%s' "$line" | cut -d: -f2- | sed 's|^ ||' | escape)" + printf 'export %s="%s"\n' "$KEY" "$VALUE" +done < "$FILENAME" | tee -a "$FILENAME".tmp +# shellcheck source=/dev/null +. "$FILENAME".tmp +rm -f "$FILENAME".tmp + +cat src/lib/base."${lang:?}".conf +# shellcheck source=/dev/null +. src/lib/base."$lang".conf +if [ -z "${title:-}" ]; then + title="${site_name:?}" + printf 'export title="%s"\n' "$(printf '%s' "$title" | escape)" +fi + +if [ -n "${date:-}" ]; then + formatted_date="$(LANG="$lang" date -d "${date:?}" +"${date_fmt:?}")" + export formatted_date + printf 'export date_html="%s"\n' "$(envsubst < src/lib/date."$lang".html | escape)" +fi + +if [ -n "${update:-}" ]; then + formatted_update="$(LANG="$lang" date -d "${update:?}" +"${date_fmt:?}")" + export formatted_update + printf 'export update_html="%s"\n' "$(envsubst < src/lib/update."$lang".html | escape)" +fi + + +url_part="$(printf '%s' "${FILENAME%.md}.html" | sed 's|^src/content/||')" +title_uri="$(uri "$title")" + +printf 'export title_html="%s"\n' "$(printf '%s' "$title" | htmlesc | escape)" +printf 'export filename="%s"\n' "$FILENAME" +printf 'export url_part="%s"\n' "$url_part" +printf 'export url="%s"\n' "$(url-for "$url_part" | absolute)" +printf 'export mailto_uri="%s%s"\n' "${mailto_uri_prefix:?}" "$title_uri" +printf 'export discussions_url="%s%s"\n' "${discussions_url_prefix:?}" "$title_uri" +printf 'export sourcecode_url="%s%s"\n' "${sourcecode_url_prefix:?}" "$FILENAME" + +printf 'export style_url="%s"\n' "$(url-for -g 'style.css')" +printf 'export favicon_url="%s"\n' "$(url-for -g 'favicon.svg')" +printf 'export pubkey_url="%s"\n' "$(url-for -g 'public.asc.txt')" + +for f in src/content/img/*.svg; do + name="$(basename "$f" .svg | sed 's|-|_|g')" + printf 'export icon_%s_url="%s"\n' "$name" "$(url-for -g "img/$(basename "$f")")" +done - printf 'title_html="%s"\n' "$(printf '%s' "$title" | htmlesc | escape)" - printf 'filename="%s"\n' "$FILENAME" - printf 'url_part="%s"\n' "$url_part" - printf 'url="%s"\n' "$(url-for "$url_part" | absolute)" - printf 'mailto_uri="%s%s"\n' "${mailto_uri_prefix:?}" "$(uri "$title")" - printf 'discussions_url="%s%s"\n' "${discussions_url_prefix:?}" "$(uri "$title")" - printf 'sourcecode_url="%s%s"\n' "${sourcecode_url_prefix:?}" "$FILENAME" +# FIXME: special treatment of root +printf 'export homepage_url="%s"\n' "$(url-for '/')" - printf 'style_url="%s"\n' "$(url-for -g 'style.css')" - printf 'favicon_url="%s"\n' "$(url-for -g 'favicon.svg')" +printf 'export about_url="%s"\n' "$(url-for "${about_url_name:?}")" - # FIXME: special treatment of root - printf 'homepage_url="%s"\n' "$(url-for '/')" - - printf 'about_url="%s"\n' "$(url-for "${about_url_name:?}")" - rm -f "$FILENAME".tmp -} | grep . | sed 's|^|export |' +if [ "${layout:-}" = 'post' ]; then + export mailto_uri="$mailto_uri_prefix$title_uri" + export discussions_url="$discussions_url_prefix$title_uri" + export sourcecode_url="$sourcecode_url_prefix$FILENAME" + printf 'export comment_html="%s"\n' "$(envsubst < src/lib/comment."$lang".html | escape)" +fi |