Create initial version
This commit is contained in:
commit
d48043eab4
89
move-mails.sh
Executable file
89
move-mails.sh
Executable file
@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
FOLDER_FROM=''
|
||||||
|
FOLDER_TO=''
|
||||||
|
DAYS=20
|
||||||
|
|
||||||
|
print_help () {
|
||||||
|
cat << EOF
|
||||||
|
Usage:
|
||||||
|
$(basename "$0") <options>
|
||||||
|
|
||||||
|
Possible options:
|
||||||
|
-f|--from <folder> Folder where to look for mails
|
||||||
|
-t|--to <folder> Folder to put outdated mails
|
||||||
|
-d|--days <days> Number of days to keep the mails
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
--from|-f)
|
||||||
|
FOLDER_FROM="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--to|-t)
|
||||||
|
FOLDER_TO="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--days|--day|-d)
|
||||||
|
DAYS="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--help|-h)
|
||||||
|
print_help
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unrecognized option: $1"
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
ensure_mail_folder () {
|
||||||
|
local folder="$1"
|
||||||
|
if ! echo "$folder" | grep '/cur/*$' > /dev/null; then
|
||||||
|
folder="$folder/cur/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$folder" -o ! -w "$folder" -o ! -r "$folder" -o ! -x "$folder" ]; then
|
||||||
|
echo "This is no valid folder: $folder"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n "$folder"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "$FOLDER_FROM" ]; then
|
||||||
|
echo "There is no folder given to read the mails from. Please provide it with --from"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$FOLDER_TO" ]; then
|
||||||
|
echo "There is no folder given to put the outdated mails. Please provide it with --to"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
FOLDER_FROM=$(ensure_mail_folder "$FOLDER_FROM")
|
||||||
|
FOLDER_TO=$(ensure_mail_folder "$FOLDER_TO")
|
||||||
|
|
||||||
|
if [ ! "$DAYS" -ge 0 ]; then
|
||||||
|
echo 'No valid number of days given.'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
find "$FOLDER_FROM" -type f -mtime +$DAYS | while read l
|
||||||
|
do
|
||||||
|
suffix=$(echo "$l" | grep -o ',[^,]*$')
|
||||||
|
|
||||||
|
if ! echo "$suffix" | grep 'S' > /dev/null ; then
|
||||||
|
# echo Unseen Mail $l
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv -n "$l" "$FOLDER_TO"
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user