39 lines
1,015 B
Bash
Executable file
39 lines
1,015 B
Bash
Executable file
#!/bin/sh
|
|
|
|
usage() {
|
|
echo "$0 <mutt \$folder>"
|
|
echo " Generate mutt folder hooks for every maildir account in \$folder"
|
|
exit 1
|
|
}
|
|
|
|
if [ -z "$1" ]; then
|
|
usage
|
|
fi
|
|
|
|
acc_dir="$HOME/.config/neomutt/accounts/"
|
|
mail_dir="$1"
|
|
|
|
# Select default account
|
|
default="$(find "$acc_dir" -name "*.mail" -printf "source '%p'\n" -quit)"
|
|
|
|
if [ -z "$default" ]; then
|
|
>&2 echo "No mail accounts found in $acc_dir"
|
|
exit 1
|
|
fi
|
|
|
|
printf '%s\n' "$default"
|
|
|
|
# Order of the keys to use for the account switch macro
|
|
chars="1234567890azertyuiopqsdfghjklmwxcvbn"
|
|
i=1
|
|
|
|
# Setup folder hooks for all the accounts
|
|
for f in "$acc_dir"*.mail; do
|
|
account="$(basename -s '.mail' "$f")"
|
|
inbox="$(find "$mail_dir/$account" -maxdepth 1 -iname "inbox" -type d -printf "%f" -quit)"
|
|
printf 'folder-hook =%s '\''source %s'\''\n' "$account" "$f"
|
|
key="$(printf '%s' "$chars" | cut -c "$i")"
|
|
printf 'macro index,pager <Esc>%s "<change-folder>=%s/%s<Return>" "Change to %s Inbox"\n' \
|
|
"$key" "$account" "$inbox" "$account"
|
|
i=$((i+1))
|
|
done
|