users:werner:getrepolist2
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
users:werner:getrepolist2 [2008-02-09 1431] – verkürzte allfiles werner | users:werner:getrepolist2 [2008-02-09 2256] (aktuell) – funktionierender Code :-) werner | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Suche im openSUSE Build Repository ====== | ||
+ | Den begleitenden Text findest Du auf [[users: | ||
+ | |||
+ | <code perl> | ||
+ | # | ||
+ | |||
+ | use strict; | ||
+ | use warnings; | ||
+ | use Net::FTP; | ||
+ | |||
+ | # set some variables | ||
+ | our $debug = 0; | ||
+ | my $ftpserver = ' | ||
+ | our $searchbase | ||
+ | my $verzname = " | ||
+ | # get date and time (used for logging) and print them | ||
+ | my @dots; | ||
+ | my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); | ||
+ | $year += 1900; | ||
+ | $mon++; | ||
+ | my $datstempel = sprintf(" | ||
+ | my $jetztzeit | ||
+ | print " | ||
+ | # where to put the data - logfiles with timestamp in their names | ||
+ | my $logfilename = ">> | ||
+ | our %allfiles = (' | ||
+ | my @versionen = (' | ||
+ | for my $vers (@versionen) { | ||
+ | $allfiles{" | ||
+ | $allfiles{" | ||
+ | $allfiles{" | ||
+ | } # for $vers (@versionen) | ||
+ | mkdir ' | ||
+ | # the real start :-) | ||
+ | our $ftp = Net:: | ||
+ | or die " | ||
+ | print " | ||
+ | $ftp-> | ||
+ | or die " | ||
+ | print " | ||
+ | scan1dir($searchbase); | ||
+ | # post work - write out the time again so one can see how long it takes | ||
+ | ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); | ||
+ | $year += 1900; | ||
+ | $mon++; | ||
+ | $datstempel = sprintf(" | ||
+ | $jetztzeit | ||
+ | print " | ||
+ | |||
+ | sub scan1dir { | ||
+ | our %allfiles; | ||
+ | our $searchbase; | ||
+ | our $ftp; | ||
+ | our $debug; | ||
+ | my ($thisdir) = @_; | ||
+ | print "now working on $thisdir\n" | ||
+ | my $right6 | ||
+ | my $right5 | ||
+ | my $right4 | ||
+ | my $right3 | ||
+ | my $forget | ||
+ | my $shorter = substr($thisdir, | ||
+ | my $legible = $shorter; | ||
+ | my $itsfor | ||
+ | my $usehome = ($thisdir =~ /home:\//); | ||
+ | # $thisdir is s.th. like home:/ | ||
+ | # now snip from the last / onward: | ||
+ | if (length($shorter)) { | ||
+ | $legible =~ s|(.*)/ | ||
+ | $legible =~ s/\///g; | ||
+ | $right4 | ||
+ | $right3 | ||
+ | $itsfor | ||
+ | $itsfor | ||
+ | $itsfor | ||
+ | $itsfor | ||
+ | $itsfor | ||
+ | } # if (length($shorter)) | ||
+ | $ftp-> | ||
+ | or die " | ||
+ | my @dircontent = $ftp-> | ||
+ | my @unterverz = (); | ||
+ | my $ftpelem; | ||
+ | for $ftpelem (@dircontent) { | ||
+ | my ($rechte, $num, $user, $group, $size, $mon, $day, $time, $name) = split / +/, $ftpelem, 9; | ||
+ | if (substr($rechte, | ||
+ | print " | ||
+ | if ((" | ||
+ | my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); | ||
+ | $year += 1900; | ||
+ | $mon++; | ||
+ | my $jetztzeit | ||
+ | my $MYTOFILE = $allfiles{" | ||
+ | open THISHANDLE, $allfiles{" | ||
+ | or die " | ||
+ | print THISHANDLE " | ||
+ | close THISHANDLE; | ||
+ | open THISHANDLE, $allfiles{" | ||
+ | or die " | ||
+ | print THISHANDLE "smart channel --add $legible ", | ||
+ | " | ||
+ | " | ||
+ | close THISHANDLE; | ||
+ | if ($usehome) { | ||
+ | open THISHANDLE, $allfiles{" | ||
+ | or die " | ||
+ | print THISHANDLE " | ||
+ | close THISHANDLE; | ||
+ | } # if ($usehome) | ||
+ | my $meld = " | ||
+ | open THISHANDLE, $allfiles{" | ||
+ | or die " | ||
+ | print THISHANDLE " | ||
+ | close THISHANDLE; | ||
+ | if (" | ||
+ | open ZYPPFILE, "> | ||
+ | or die " | ||
+ | print ZYPPFILE " | ||
+ | print ZYPPFILE " | ||
+ | print ZYPPFILE " | ||
+ | print ZYPPFILE " | ||
+ | print ZYPPFILE " | ||
+ | print ZYPPFILE " | ||
+ | print ZYPPFILE " | ||
+ | close ZYPPFILE; | ||
+ | } # if (" | ||
+ | } # if (($itsfor ne ' | ||
+ | else { | ||
+ | print (" | ||
+ | @unterverz = (@unterverz, | ||
+ | } | ||
+ | } # if (substr($rechte, | ||
+ | } # foreach $elem (@dircontent) | ||
+ | if ((my $unterverz = @unterverz) > 0) { | ||
+ | for my $untvz (@unterverz) { | ||
+ | scan1dir($untvz); | ||
+ | } # for $untvz (@unterverz) | ||
+ | } # if (($unterverz = @unterverz) > 0) | ||
+ | 1; | ||
+ | } # sub scan1dir | ||
+ | </ | ||
+ | |||
+ | Übrigens läuft das Script bei mir in genau einer Stunde durch: | ||
+ | |||
+ | starting script on 20080209 at 16:48:09. | ||
+ | script ending on 20080209 at 18:48:05. |
users/werner/getrepolist2.txt · Zuletzt geändert: 2008-02-09 2256 von werner