X-Git-Url: https://git.madduck.net/etc/mutt.git/blobdiff_plain/a83d50d5a64488deb3796bbd0ca0a03b0516cc77..7013dfe93a05082153f79eca6c9e5c05b54d9d50:/.config/mutt/mkconf diff --git a/.config/mutt/mkconf b/.config/mutt/mkconf new file mode 100755 index 0000000..e98a9e1 --- /dev/null +++ b/.config/mutt/mkconf @@ -0,0 +1,72 @@ +#!/bin/sh +set -eu + +FILE="${1:-${0%/*}/confvars}" +TARGET="${2:-}" + +if [ ! -f "$FILE" ]; then + echo >&2 "E: File $FILE does not exist" + exit 1 +fi + +if [ -z "$TARGET" ]; then + TARGET="$FILE" +fi + +TMPFILE="$(mktemp -t vit.XXXXXXXX)" +cleanup() { rm -f "$TMPFILE"; trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15; } +trap cleanup 1 2 3 4 5 6 7 8 10 11 12 13 14 15 + +process_stanza() { + echo "$2" + local opt setting trailer + opt="$(sed -ne "/^set ${1}=/,/# 3\./p" $FILE)" + if [ -n "$opt" ]; then + opt="${opt% +*}" + setting="${opt%% +*}" + echo >&2 "Importing setting: $setting …" + echo "$setting" + echo "$opt" | grep '^#' || : + fi + echo + echo +} + +option= +{ zcat /usr/share/doc/mutt/manual.txt.gz | \ + sed -e '1,/^3\. Configuration Variables$/d;1d;/^4\./,$d' -e 's, , ,g'; + echo END; } | \ + +while read first rest; do + line="$first ${rest%% }" + case "$first" in + (3.[0-9]*|END) + [ -z "$option" ] || \ + process_stanza "$option" "${stanza}" + stanza="# $line" + option="$rest" + ;; + ('') + stanza="${stanza:+$stanza\n}#$line" + ;; + (*) + stanza="${stanza:+$stanza\n}# $line" + ;; + esac + +done > $TMPFILE + +cat <<_eof > "$TARGET" +# Auto-generated using mkconf from manual.txt +# on $(date +'%Y-%m-%d %H:%M:%S') +# +# Invoked as: $0${1:+ $@} +# + +$(cat "$TMPFILE") + +# vim:sw=12:noet:sts=12:ts=12:ft=muttrc +_eof +cleanup