[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 メーリングリストの案内