2012年7月 3日

[mew-dist 29533] mewest

たかのです。こんにちは。

mewest から呼ばれている estcmd が最近どうも完走しないのでコマ
ンド自体を改修してしまいました。

僕は基本的に $HOME/Mail の下に casket は置かないことにしている
ので以下のようになっています。

---
$ ls -l $HOME/Mail/casket
(略) $HOME/Mail/casket@ -> /var/db/mew/casket
---

このとき、 casket が $HOME/Mail の下に無いと estcmd がエラーに
なるようです。

---
$ mewest
Replicating index...
Replicating index...done
Purging old messages...
estcmd: ERROR: $HOME/Mail/casket_replica: database problem
Purging old messages...failed
---

casket も casket_replica も実体が $HOME/Mail にあるとエラーに
ならずに完走します。

で、 mewest のほうを直しました。シェルスクリプトなので自分のた
めに改修すれば良いとは思ったのですが、一応 ML にパッチを投げてお
きます。

採用されるかされないかは かずさん 次第。と、いうことになるかと
思いますが。で、もし採用されれば git のテストにもなりますし;-)。


1).データベースの保存先として CASKETDIR 変数を用意しました。
BASEDIR が $HOME/Mail になっているので、検索するディレクトリ
とデータベースを格納できるディレクトリを分けました。

あとは細かいところをチョビチョビと直した程度ですが、

2). INDEXDIR_ORG と INDEXDIR の両方が使われていたので INDEXDIR
一個にしました。

3). cron 実行する場合 estcmd にパスが通ってないので動作しないた
め明示的にパスを指定しました。
Makefile も直せればかっちょ良いのですが、そこまではしていませ
ん。


こんな感じですが、多分ニーズは無いでしょうねぇ・・。

たかの
---
Contact to me.
takachan[at]running-dog.net http://www.running-dog.net/
takachan[at]icmpv6.org http://icmpv6.org/


--- Mew/bin/mewest 2012-07-03 12:45:07.000000000 +0900
+++ /usr/local/bin/mewest 2012-07-03 14:03:11.000000000 +0900
@@ -7,16 +7,22 @@
# Created: Jul 20, 2006
# Revised: Jul 25, 2006

-ESTCMD=estcmd
+BINDIR=/usr/local/bin
+ESTCMD=${BINDIR}/estcmd
FIND=find
RM=rm
+MV=mv
+CP=cp
MKDIR=mkdir
+
BASEDIR=${HOME}/Mail
-INDEXDIR_ORG=casket
+
+CASKETDIR=${HOME}/Mail
+INDEXDIR=casket
INDEXDIR_REPLICA=casket_replica
-INDEXDIR=${INDEXDIR_ORG}
+
OUTPUT=${OUTPUT:-/dev/null}
-LOCK=${BASEDIR}/.mewest.lock
+LOCK=${CASKETDIR}/.mewest.lock
CYGWINENV=no
SUFFIX=${SUFFIX:-.mew}

@@ -49,8 +55,8 @@
}

clean_up_replica () {
- if [ -d "${BASEDIR}/${INDEXDIR_REPLICA}" ]; then
- rm -fr "${BASEDIR}/${INDEXDIR_REPLICA}"
+ if [ -d "${CASKETDIR}/${INDEXDIR_REPLICA}" ]; then
+ ${RM} -fr "${CASKETDIR}/${INDEXDIR_REPLICA}"
fi
}

@@ -143,14 +149,14 @@
cleanup_exit "${TGTDIR} not found"
fi

-if [ -d "${BASEDIR}/${INDEXDIR}" ]; then
+if [ -d "${CASKETDIR}/${INDEXDIR}" ]; then
echo "Replicating index..."
clean_up_replica
- cp -R "${BASEDIR}/${INDEXDIR}" "${BASEDIR}/${INDEXDIR_REPLICA}"
+ ${CP} -R "${CASKETDIR}/${INDEXDIR}" "${CASKETDIR}/${INDEXDIR_REPLICA}"
INDEXDIR=${INDEXDIR_REPLICA}
echo "Replicating index...done"
echo "Purging old messages..."
- ${ESTCMD} purge "`path_conv \"${BASEDIR}/${INDEXDIR}\"`" "`path_conv \"${TGTDIR}\"`" > ${OUTPUT} ||\
+ ${ESTCMD} purge "`path_conv \"${CASKETDIR}/${INDEXDIR}\"`" "`path_conv \"${TGTDIR}\"`" > ${OUTPUT} ||\
cleanup_exit "Purging old messages...failed"
echo "Purging old messages...done"
fi
@@ -161,17 +167,17 @@

${FIND} "`path_conv \"${TGTDIR}\"`" \
-type d -name "trash" -prune -o \
- -type d -name ${INDEXDIR_ORG} -prune -o \
+ -type d -name ${INDEXDIR} -prune -o \
-type d -name ${INDEXDIR_REPLICA} -prune -o \
-type f \( -name "[0-9]" -o -name "[0-9]*[0-9]" -o -name "[0-9]*${SUFFIX}" \) -print |\
- ${ESTCMD} gather -cl -fm -cm -sd -xh "`path_conv \"${BASEDIR}/${INDEXDIR}\"`" - > ${OUTPUT} ||\
+ ${ESTCMD} gather -cl -fm -cm -sd -xh "`path_conv \"${CASKETDIR}/${INDEXDIR}\"`" - > ${OUTPUT} ||\
cleanup_exit "Indexing new messages...failed"

echo "Indexing new messages...done"
-if [ "${BASEDIR}/${INDEXDIR}" = "${BASEDIR}/${INDEXDIR_REPLICA}" ]; then
+if [ "${CASKETDIR}/${INDEXDIR}" = "${CASKETDIR}/${INDEXDIR_REPLICA}" ]; then
echo "Replacing old index with new one..."
- rm -fr "${BASEDIR}/${INDEXDIR_ORG}"
- mv "${BASEDIR}/${INDEXDIR_REPLICA}" "${BASEDIR}/${INDEXDIR_ORG}"
+ ${RM} -fr "${CASKETDIR}/${INDEXDIR}"
+ ${MV} "${CASKETDIR}/${INDEXDIR_REPLICA}" "${CASKETDIR}/${INDEXDIR}"
echo "Replacing old index with new one...done"
fi


投稿者 xml-rpc : 2012年7月 3日 14:59
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/111232
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。