[mew-dist 18666] Re: cur of qmail
Yasunari Momoi
momo at example.com
2001年 8月 31日 (金) 20:20:04 JST
From: Kazu Yamamoto (山本和彦) <kazu at example.com>
Subject: [mew-dist 18665] Re: cur of qmail
Date: Fri, 31 Aug 2001 20:05:10 +0900 (JST)
> > メールが Maildir/new から Maildir/cur に移動しているためだと
> > 思うのですが、これを取り込めるようにするにはどうすればいいの
> > でしょうか。
>
> この話題は、まさにその問題から発生しています。
> そのうち、momo ちゃんが、incdir と incm を改良してくれる予定です。
実装は 3 秒ぐらいでできてるんですが (^^;),backup オプション
(-b) と同時に指定されたときの扱いをちょっと考えてました.
まあ,仕様として明記すればどっちでも良さそうな問題なので,と
りあえず次の仕様にしておきました.
・オプション指定なし
Maildir/new のメールを +inbox へ mv
・-a オプションを指定
Maildir/cur のメールを +inbox へ mv
Maildir/new のメールを +inbox へ mv
・-a -b オプションを指定
Maildir/cur のメールを +inbox へ cp
Maildir/new のメールを +inbox へ cp
Maildir/new のメールを Maildir/cur へ mv
つまり,incdir -a -b とすると,同じメールが延々と取れてきて
しまうことになりますが,そのあたりは自己責任ということで...
これでよさそうなら incm (C 版) の方も同じ仕様にします.
-- momo
-------------- next part --------------
#!/bin/sh
VERSION='$Id: incdir,v 1.5 2001/08/31 11:16:05 momo Exp $'
IDIR=.
MDIR=${HOME}/Maildir
FROMCUR="NO"
MOVE="YES"
args=`getopt abd:i: $*`
if [ $? != 0 ]; then
echo "usage: incdir [-b] [-d maildir] [-i inboxdir]"
echo " -a retrieve all mail from maildir/{cur,new} directory"
echo " -b backup mail to maildir/cur directory"
echo " -d maildir path to maildir (default: ${HOME}/Maildir)"
echo " -i inboxdir path to inboxdir (default: .)"
echo
echo "version: $VERSION"
exit 1
fi
set -- $args
for i
do
case "$i" in
-a)
FROMCUR="YES"; shift
;;
-b)
MOVE="NO"; shift
;;
-d)
MDIR="$2"; shift; shift
;;
-i)
IDIR="$2"; shift; shift
;;
--)
shift; break
;;
esac
done
if [ \( ! -d $MDIR/new \) -a \( ! -d $MDIR/cur \) ]; then
echo "can't find $MDIR."; exit 1
fi
if [ ! -d $IDIR ]; then
echo "can't find $IDIR."; exit 1
fi
SEQ=`ls -f1 $IDIR | egrep '^[1-9][0-9]*$' | sort -n | tail -1`
if [ "$SEQ"X = ""X ]; then
SEQ=1
else
SEQ=`expr $SEQ + 1`
fi
if [ "$FROMCUR"X = "YES"X ]; then
for f in $MDIR/cur/*; do
# sanity check
[ ! -f $f ] && continue
while [ -f $IDIR/$SEQ ]; do
SEQ=`expr $SEQ + 1`
done
if [ "$MOVE"X = "YES"X ]; then
mv $f $IDIR/$SEQ
else
cp -p $f $IDIR/$SEQ
fi
echo $SEQ
SEQ=`expr $SEQ + 1`
done
fi
for f in $MDIR/new/*; do
# sanity check
[ ! -f $f ] && continue
while [ -f $IDIR/$SEQ ]; do
SEQ=`expr $SEQ + 1`
done
if [ "$MOVE"X = "YES"X ]; then
mv $f $IDIR/$SEQ
else
cp -p $f $IDIR/$SEQ
mv $f $MDIR/cur/`basename $f`:2,S
fi
echo $SEQ
SEQ=`expr $SEQ + 1`
done
exit 0
# incdir - incorporate new mail from qmail user's maildir
# author: Yasunari Momoi <momo at example.com>
# created: 2000/10/13
#
#
# Add the following to your emacs configuration file.
#
# (setq mew-mailbox-type 'mbox) ; this applies also maildir
# (setq mew-mbox-command "incdir")
# (setq mew-mbox-command-arg "-d /path/to/your/maildir")
#
#
# Copyright (C) 2000 Yasunari Momoi. All rights reserved.
# Copyright notice is the same as Mew's one.
Mew-dist メーリングリストの案内