diff --git a/maildir-last-change.sh b/maildir-last-change.sh index 5e0e11f..6ff2ba2 100755 --- a/maildir-last-change.sh +++ b/maildir-last-change.sh @@ -277,6 +277,25 @@ else echo_skipped fi +echononl "Remove old statistic files .." +if [[ "$DOMAIN" = "*" ]] ; then + rm -f ${DST_DIR}/* > $error_log 2>&1 + if [[ $? -eq 0 ]]; then + echo_done + else + echo_failed + error "$(cat "$error_log")" + fi +else + rm -f "${DST_DIR}/${DOMAIN}/*" + if [[ $? -eq 0 ]]; then + echo_done + else + echo_failed + error "$(cat "$error_log")" + fi +fi + echononl "Determin last change time for mailboxes.." echo_wait @@ -311,7 +330,11 @@ echononl "Write down statistic files per domain .." echo_wait _failed=false for _domain in "${_domain_arr[@]}" ; do - cat "${DST_DIR}/00-all-domains.stat" | grep "@$_domain" > "${DST_DIR}/${_domain}.stat" 2> "$error_log" + if [[ ${#_domain_arr[@]} -eq 1 ]] ; then + cat $_CACHE_FILE | sort -n > "${DST_DIR}/${_domain}.stat" 2> "$error_log" + else + cat "${DST_DIR}/00-all-domains.stat" | grep "@$_domain" > "${DST_DIR}/${_domain}.stat" 2> "$error_log" + fi if [[ $? -ne 0 ]]; then _failed=true fi