Update 2024-02-14 07:51 OpenBSD/amd64-x13
This commit is contained in:
42
.bin/OLD/compress_maildir.sh
Executable file
42
.bin/OLD/compress_maildir.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/bin/ksh
|
||||
|
||||
set -e # fail on error
|
||||
|
||||
# mail permission
|
||||
UID=sdk
|
||||
GID=sdk
|
||||
MODE=600
|
||||
BACKUP=0 # if 1, bak directory will be created within maildir
|
||||
|
||||
[[ -z $1 ]] && \
|
||||
print "$0 <maildir>" && exit 2
|
||||
|
||||
# conditions:
|
||||
# - filename as size S=
|
||||
# - filename does not end in Z (already compressed)
|
||||
# - file must not return gzip compressed data (already compressed)
|
||||
# filename is cut from the file(1) output
|
||||
FILES=$(cd "$1/cur/" \
|
||||
&& find . -iname '*,S=*[^Z]' -exec file {} \; \
|
||||
| grep -v 'gzip compressed data' \
|
||||
| sed 's/: /!/' \
|
||||
| cut -d '!' -f 1)
|
||||
|
||||
[[ $BACKUP != 0 ]] && mkdir "$1/bak"
|
||||
|
||||
# loop through mail and compress appending Z
|
||||
# sync mtime with original file
|
||||
# set used,group,permissions
|
||||
# remove original mail (or backup)
|
||||
for MAIL in $FILES; do
|
||||
print "gzipping $1/cur/$MAIL to $1/cur/${MAIL}Z"
|
||||
gzip -8 -S Z "$1/cur/$MAIL" -c > "$1/cur/${MAIL}Z"
|
||||
touch -r "$1/cur/$MAIL" "$1/cur/${MAIL}Z"
|
||||
chown $UID:$GID "$1/cur/${MAIL}Z"
|
||||
chmod $MODE "$1/cur/${MAIL}Z"
|
||||
if [[ $BACKUP != 0 ]]; then
|
||||
mv "$1/cur/$MAIL" "$1/bak/$MAIL"
|
||||
else
|
||||
rm -f "$1/cur/$MAIL"
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user