#!/usr/bin/perl $seconds = 60; #seconds before repeating. $old_total_messages = 0; $old_seen_messages = 0; $old_folder = ""; while(1) { $total_messages = 0; $seen_messages = 0; $folder = ""; $offlineimap_pid = ""; $mutt_pid = ""; open MUTT_PID, "pidof mutt |"; $mutt_pid = ; close MUTT_PID; chomp $mutt_pid; open OFFLINEIMAP_PID, "pidof python2.2 /usr/bin/offlineimap |"; $offlineimap_pid = ; close OFFLINEIMAP_PID; chomp $offlineimap_pid; if($offlineimap_pid){ sleep $seconds; next;} open FETCHMAIL, "fetchmail -c 2>/dev/null |"; while() { if(/(\d+) messages \((\d+) seen\).*\(folder (.*)\)/) { $total_messages = $1; $seen_messages = $2; $folder = $3; if($total_messages > $seen_messages) { unless(($old_total_messages == $total_messages) and ($old_seen_messages == $seen_messages) and ($old_folder eq $folder) ) { system("apanel_offlineimap"); $old_total_messages = $total_messages; $old_seen_messages = $seen_messages; $old_folder = $folder; last; } } } } close FETCHMAIL; sleep $seconds; }