]> Pileus Git - ~andy/fetchmail/blob - contrib/getfetchmail.pl
Note Earl's regression fix for SSL_CTX_clear_options() on older OpenSSL.
[~andy/fetchmail] / contrib / getfetchmail.pl
1 #!/usr/bin/perl -w
2 # Copyright 2001 John Summerfield, summer@summer.ami.com.au
3 # GPL 2 applies.
4 #
5 ($flags, $links, $owner, $gowner, $size, $month, $day, $timeOrDate, $name, $junk, $junk2, $junk1) ='';
6 $RemoteHost="ftp.ccil.org";
7 $LocalDir="/home/u03/incoming/";
8 $FilePattern="/pub/esr/fetchmail/fetchmail\*src.rpm";
9 $GrepArgs="fetchmail-[5-9]";
10 $no=0;
11 $TempFile=`mktemp /var/tmp/getfetchmail.XXXXXX`;
12 @files=`echo dir $FilePattern | ftp $RemoteHost  | egrep $GrepArgs`;
13 chomp @files;
14 open(FTP, "| ftp -d -v $RemoteHost | egrep '^213|MDTM'  >$TempFile");
15 foreach $L (@files)
16 {
17         ++$no;
18         $L =~ s/  */,/g;
19         ($flags, $links, $owner, $gowner, $size, $month, $day, $timeOrDate, $name, $junk) = split /,/,$L;
20         next unless substr($timeOrDate,2,1) eq ':';
21         print FTP "modtime $name\n";
22 #       last if $no > 4;
23 }
24 close FTP;
25
26 $SavedTime=0;
27 $time=1;
28 $SavedName='';
29 open (FILES,$TempFile);
30 while ($rec = <FILES>)
31 {
32         chomp $rec;
33         ($junk1, $junk2, $filename) = split / /,$rec if substr($rec,0,4) eq '--->';
34         $time = substr($rec,4) if substr($rec,0,3) eq '213';
35         if (($time > $SavedTime) && (substr($rec,0,3) eq '213'))
36         {
37                 $SavedTime=$time;
38                 $SavedName=$filename;
39         }
40 }
41 close FILES;
42 $LocalName = $SavedName; $LocalName =~ s=.*/==;
43 $LocalName = $LocalDir . $LocalName;
44 $Y=substr($SavedTime,0,4);
45 $M=substr($SavedTime,4,2);
46 $D=substr($SavedTime,6,2);
47 $h=substr($SavedTime,8,2);
48 $m=substr($SavedTime,10,2);
49 $s=substr($SavedTime,12,2);
50 print "I should get $SavedName and store it in $LocalName\n";
51 open(SH,"|/bin/bash");
52 print SH <<zz
53 set -x
54 echo get $SavedName $LocalName \| ftp $RemoteHost 
55 rpm -K $LocalName \|\| exit $?
56 touch -t $Y$M$D$h$m.$s  $LocalName
57 rpm --rebuild $LocalName
58 zz
59 ;
60 close SH;
61