summaryrefslogtreecommitdiff
path: root/src/conf
diff options
context:
space:
mode:
Diffstat (limited to 'src/conf')
-rwxr-xr-xsrc/conf43
1 files changed, 30 insertions, 13 deletions
diff --git a/src/conf b/src/conf
index d132a34..a5804b0 100755
--- a/src/conf
+++ b/src/conf
@@ -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=