[Mew-dist 1594] imget.qmail

Yoshitomi Kentaro yositomi at example.com
1997年 8月 23日 (土) 13:07:01 JST


吉冨と申します。

  qmail の maildir に mew を対応させるため
imget の wrapper を書いて見ました。
  仕組みは, ~/Mail/new に ある file を, ~/Mail/work
に数字の名前を持つ file に移し、それを本来の imget で
とってくるというものです. command line からやると
うまく行きます.
  ところが、.emacs で

(setq mew-prog-imget (expand-file-name "~/bin/imget.qmail"))

して, 実行すると ~/Mail/work に移動するところまでは
うまく行くのですが, system で imget を呼び出すところが
動いてくれません. perl 初心者ですので, 何故動かないのか
良く分かりません.
  どなたか分かる方がおられましたら よろしくお願いします.

-------->8-------->8-------->8-------->8-------->8-------->8--------
#!/usr/local/bin/perl

$realimget = "/usr/local/bin/imget";
$home = $ENV{'HOME'};
$home = (getpwuid($<))[7] unless ($home);

$maildir = $ENV{'MAILDIR'};
if ("$maildir" == "") {
    $maildir = "$home/Mail";
}
if (! -x $maildir) {
    if (mkdir($maildir, 0700) == 0) {
	die "Fail to create $maildir directory: $!\n";
    }
}
$mailnew = "$maildir/new";
$work = "$maildir/work";
if (! -x $work) {
    if (mkdir($work, 0700) == 0) {
	die "Fail to create $work directory: $!\n";
    }
}

opendir(DIR, $work);
@chkfiles = readdir(DIR);
closedir(DIR);

$ct = 0;
foreach $f (sort {$a <=> $b} @chkfiles) {
    if ($f =~ /^\d+$/) {
	$ct = $f;
    }
}
$ct = $ct + 1;

opendir(MB, $mailnew) 
    || die "Fail to open $maildir/new directory.\n";
@srcfiles = readdir(MB);
closedir(MB);

foreach $f (sort @srcfiles) {
    next if $f eq '.';
    next if $f eq '..';
    if ( -s "$mailnew/$f" ) {
	rename("$mailnew/$f", "$work/$ct")
	    || die ("Could not move $mailnew/$f to $work/$ct: $!\n");
	$ct++;
    }
}
#open(LOG, ">$home/imget.log");
#print LOG "@ARGV";
#sleep (1);
system "/usr/local/bin/imget -s local:$work", @ARGV;
#exec "/usr/local/bin/imget -s local:$work", @ARGV;

-------->8-------->8-------->8-------->8-------->8-------->8--------

----
 吉冨 賢太郎   [ yositomi at example.com / (075)753-3699 ]       
 〒606-01 京都市左京区京都大学理学部数学教室 DC



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