#!/bin/bash set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR offlineimap -u quiet shopt -s nullglob omv() { # offlineimap mv src="$1" dst="$2" found_files=false for x in new cur; do files=("$src_base"/"$src"/$x/*) if [[ $files ]]; then found_files=true mv "${files[@]}" /m/md/"$dst"/$x fi done } src_base=/m/offlineimap omv "Sent Items" "Sent" omv INBOX offlineimaptmp src_base=/m/md if $found_files; then sieve-filter -eW ~/sieve/main.sieve offlineimaptmp &>/dev/null # the default folder is INBOX for anything leftover omv offlineimaptmp INBOX # remove messages from remote host offlineimap -u quiet mu index &>/dev/null ||: fi