[mew-dist 29533] mewest

TAKANO Yuji ( たかのゆ〜じ ) takachan at example.com
2012年 7月 3日 (火) 14:59:07 JST


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

  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
 


Mew-dist メーリングリストの案内