[Mew-dist 12716] RE: タイムスタンプを使うimmknmz

KOIE Hidetaka ( 鯉江英隆 ) hide at example.com
2000年 3月 23日 (木) 10:00:47 JST


タイムスタンプファイルの名前をNMZ.stamp.tmpにしていましたが
mknmzが終了時にutil::remove_tmpfiles()にてunlink NMZ.*.tmpするので
せっかく作ったファイルが消えてしまってました。
NMZ.stamp.newという名前で作成することにしました。
$timestamp.tmpとなっていたところを$timestamp.newに書き変えただけです。

(素のimmknmz.inに対するパッチになります)
--- immknmz.in.org	Mon Feb 28 12:54:19 2000
+++ immknmz.in	Thu Mar 23 09:34:46 2000
@@ -35 +35 @@
-use vars qw($Prog $EXPLANATION @OptConfig $opt_help $opt_gcnmz $opt_verbose);
+use vars qw($Prog $EXPLANATION @OptConfig $opt_help $opt_gcnmz $opt_verbose $opt_timestamp);
@@ -46,0 +47 @@
+	      'timestamp;b;;' => "Use checking time stamp.",
@@ -54,0 +56,8 @@
+sub get_mtime {
+    my ($path) = @_;
+    my ($dev,$ino,$mode,$nlink,$uid,$gid,
+        $rdev,$size,$atime,$mtime,$ctime,
+        $blksize,$blocks) = stat($path) or return -1;
+    return $mtime;
+}
+
@@ -71,0 +81 @@
+my $timestamp;
@@ -108,0 +119,17 @@
+        $timestamp = "$nmzfolder/NMZ.stamp";
+        if ($opt_timestamp) {
+	    my $foldermtime;
+	    if (&usetouchfile() && -r $msgfolder . "/" . &touchfile()) {
+		$foldermtime = get_mtime($msgfolder . "/" . &touchfile());
+	    } else {
+		$foldermtime = get_mtime("$msgfolder");
+	    }
+            if ($foldermtime < get_mtime("$timestamp")) {
+                print "index of $msgfolder may be up to date.\n" if $opt_verbose;
+                next;
+            }
+        }
+        im_open(\*STAMP,">$timestamp.new");
+        print STAMP "timestamp for immknmz.";
+        close(STAMP);
+
@@ -159,0 +187 @@
+        rename("$timestamp.new", "$timestamp");

--
KOIE Hidetaka 鯉江英隆 <hide at example.com>



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