diff options
Diffstat (limited to 'v2/src/bin/conf')
-rwxr-xr-x | v2/src/bin/conf | 228 |
1 files changed, 0 insertions, 228 deletions
diff --git a/v2/src/bin/conf b/v2/src/bin/conf deleted file mode 100755 index 9fb4664..0000000 --- a/v2/src/bin/conf +++ /dev/null @@ -1,228 +0,0 @@ -#!/bin/sh -set -eu - - -usage() { - cat <<-'EOF' - Usage: - conf [FILENAME] - conf -h - EOF -} - -help() { - cat <<-'EOF' - - Options: - -h, --help show this message - - FILENAME the name of the input file, also to be used as - URL. - - - Separate the content from the "frontmatter", and emit the - selected one, given the FILENAME. If FILENAME is not given, - generate the global config. - - - Examples: - - Get the "frontmatter" of src/f.conf: - - $ conf src/f.md > src/f.conf - 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 - - -FILENAME="${1:-}" -if [ -z "$FILENAME" ]; then - printf 'export style_url="%s"\n' "$(url-for 'style.css')" - printf 'export pubkey_url="%s"\n' "$(url-for 'public.asc.txt')" - printf 'export pubkey_id="%s"\n' "$( - LANG=C.UTF-8 gpg --list-key "$EMAIL" | - awk 'NR==2 { print substr($1, length($1) - 15) }' | - shesc - )" - - for f in "$CONTENT_PREFIX"/img/*.svg; do - name="$(basename "$f" .svg | sed 's|-|_|g')" - printf 'export icon_%s_url="%s"\n' "$name" "$(url-for "img/$(basename "$f")")" - done - for l in $(langs); do - for f in "$CONTENT_PREFIX"/img/*.svg; do - name="$(basename "$f" .svg | sed 's|-|_|g')" - printf 'export icon_%s_alt="%s"\n' "$name" "$(shesc < "$CONTENT_PREFIX/img/alt/$(basename "$f" .svg).$l.txt" )" - done > src/lib/generated."$l".conf - done - exit -fi - - -lang="$(lang-for "$FILENAME")" -export lang - -cat src/lib/base.conf src/lib/generated.conf src/lib/generated."$lang".conf | - tee "$FILENAME".tmp -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|^ ||' | shesc)" - printf 'export %s="%s"\n' "$KEY" "$VALUE" -done < "$FILENAME" | tee -a "$FILENAME".tmp -# shellcheck source=/dev/null -. "$FILENAME".tmp -rm -f "$FILENAME".tmp - - -lang="$(lang-for "$FILENAME")" -export lang -printf 'export lang="%s"\n' "$lang" - -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" | shesc)" -fi - - -collection="$(collection-for "$FILENAME" ||:)" -if [ -n "$collection" ]; then - export collection - printf 'export collection="%s"\n' "$collection" - - coll_path="$(coll2path "$lang" "$collection")" - feed_title="$(eval "echo \"\$feed_${collection}_title\"" | htmlesc)" - - collection_head_html="$(printf ' <link rel="alternate" type="application/atom+xml" href="%s" title="%s" />' \ - "$(url-for "$lang/$coll_path")" \ - "$(htmlesc "$feed_title")" - )" - printf 'export collection_head_html="%s"\n' "$(shesc "$collection_head_html")" -fi - -if [ -z "${layout:-}" ]; then - if [ -z "$collection" ]; then - layout=page - else - layout=post - - custom_layout="$(echo "$LAYOUTS" | grep . | - awk -v coll="$collection" '$1 == coll { print $2 }' - )" - if [ -n "$custom_layout" ]; then - layout="$custom_layout" - fi - fi - export layout - printf 'export layout="%s"\n' "$layout" -fi - - -if [ -r "$FILENAME".i18n ]; then - translations_head="$(awk -F: -v lang="$lang" '$1 != lang{ - printf " <link rel=\"alternate\" type=\"text/html\" href=\"%s\" hreflang=\"%s\" />\n", - $3, $1 - }' "$FILENAME".i18n)" - translations_body="$(cat <<-EOF - <ul class="translation-list"> - $(awk -F: '{ - printf " <li><a href=\"%s\">%s</a></li>\n", - $3, $1 - }' "$FILENAME".i18n) - </ul> - EOF - )" - printf 'export translations_head_html="%s"\n' "$(shesc "$translations_head")" - printf 'export translations_body_html="%s"\n' "$(shesc "$translations_body")" -fi - -if [ -n "${date:-}" ]; then - date_iso="$(date -ud "${date:?}" -Is)" - printf 'export date_iso="%s"\n' "$date_iso" - - formatted_date="$(LANG="$lang" date -ud "${date:?}" +"${date_fmt:?}")" - export formatted_date - printf 'export formatted_date_html="%s"\n' "$(htmlesc "$formatted_date" | shesc)" - printf 'export date_html="%s"\n' "$(envsubst < src/lib/date."$lang".html | shesc)" - - echo "$FILENAME" > "$(dirname "$FILENAME")/$date_iso.sortdata" -fi - -if [ -n "${update:-}" ]; then - update_iso="$(date -ud "${update:?}" -Is)" - printf 'export update_iso="%s"\n' "$update_iso" - - formatted_update="$(LANG="$lang" date -ud "${update:?}" +"${date_fmt:?}")" - export formatted_update - printf 'export update_html="%s"\n' "$(envsubst < src/lib/update."$lang".html | shesc)" - - printf 'export update_xml=" <updated>%s</updated>"\n' "$update_iso" -fi - - -url="$(url-for "$FILENAME")" -url_part="$(printf '%s' "$url" | sed 's|^/||')" -title_uri="$(uri "$title")" - -printf 'export title_html="%s"\n' "$(printf '%s' "$title" | htmlesc | shesc)" -printf 'export filename="%s"\n' "$FILENAME" -printf 'export url_part="%s"\n' "$url_part" -printf 'export url="%s"\n' "$url" -printf 'export url_absolute="%s"\n' "$(absolute "$url")" -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" - - -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 | shesc)" -fi |