OSDN Git Service

info/GNU_which: Add some explanations.
[linuxjm/jm.git] / admin / ciJMpost.pl
1 #!/usr/bin/perl -w
2 #
3 # $MSRC フォルダ (MH 形式) にあるメールを CVS に自動登録する。
4 #
5 use File::Basename;
6
7 $HOME="/home/jm";
8 $CVSDIR="$HOME/JM";
9 $ML2CVS="$CVSDIR/admin/ml2cvs";
10 $MHDIR="$HOME/Mail";
11
12 $MSRC="JMPOST";
13 $MTRASH="trash";
14
15 $REFILE="/usr/bin/mh/refile";
16
17 system("cd $CVSDIR && cvs update");
18
19 @mails = glob "$MHDIR/$MSRC/[1-9]*";
20 foreach $n (@mails) {
21         open ADDOUT, "$ML2CVS $n |";
22         while (<ADDOUT>){
23                 if ($_ !~ /^CREATE:/){next;}
24                 chomp;
25
26                 $path = (split)[1];
27
28                 $dir = dirname ($path);
29                 $base = basename ($path);
30
31                 chdir "$dir";
32                 $dir = `pwd`;
33                 chomp $dir;
34
35                 until (-d "./CVS" || $dir !~ /$CVSDIR/) {
36                         $dir =~ /(.*)\/([^\/]+)/;
37                         $dir = $1;
38                         push @subs, $2;
39                         chdir "$dir";
40                 }
41
42                 until (@subs == 0) {
43                         $sub = pop @subs;
44                         system("pwd; cvs add -ko $sub");
45                         $dir .= "/$sub";
46                         chdir "$dir";
47                 }
48
49                 system ("pwd; cvs add -ko $base");
50                 
51         }
52         close ADDOUT;
53         system ("$REFILE `basename $n` -src +$MSRC +$MTRASH");
54 }
55
56 system("cd $CVSDIR && cvs ci -m 'cron commit'");
57