Subversion Repositories wimsdev

Rev

Rev 11931 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #!/usr/bin/perl -w
  2.  
  3. use POSIX qw(strftime);
  4. #use strict ;
  5. #use warnings;
  6. ###execute in wims directory
  7.  
  8. my $mirror='wimsedu';
  9. my $addr='http://downloadcenter.wimsedu.info/publish/modules' ;
  10. my $directory='public_html/modules';
  11. my $verwims=`cat version` ; ## la version doit être écrite avec deux décimales !
  12. my $vawims ;
  13. ($vawims = $verwims) =~ s/[0-9\.]//g;
  14. $verwims =~ s/[a-z]//g;
  15. my $list='';
  16. my %data;
  17. my $today = strftime "%Y%m%d", localtime;
  18.  
  19. open(IN, "wget -O - '$addr/index.txt' |");
  20.  
  21. while (<IN>){
  22.   my $l = $_;
  23.   my ($wa, $junk2, $version, $publisher, $wims, $module)=split(' ', $l) ;
  24.   my $module1=$module ; $module=~ s,/,\~,g ;
  25.   $wa=~ s/[0-9\.:]//g if ($wa) ;
  26.   ## test sur la version de wims
  27.   next if (($wims > $verwims) || ($wims == $verwims && ($wa gt $vawims) ));
  28.   ##il y a une version plus récente déjà
  29.   next if (($data{$module}) && (($data{$module}) > $wims));
  30.   $list = "$today: $module1 $version\n" ;
  31.   $data{$module}=$wims ;
  32.   wget($module,$wims) ;
  33.   outcat ("public_html/modules/Changelog.new",$list)
  34. }
  35.  
  36. close IN;
  37.  
  38. sub wget { my ($mod, $vers) = @_ ;
  39.   my @adr=split('\~', $mod);
  40.   system("mkdir -p $directory/$adr[0] ;
  41.    mkdir -p $directory/$adr[0]/$adr[1] ;
  42.    cd  $directory/$adr[0]/$adr[1];
  43.    wget -O $mod.tgz '$addr/$vers/$mod.tgz';
  44.    tar xzf $mod.tgz ; rm $mod.tgz") ;
  45. }
  46.  
  47. sub out { my ($bloc, $text) = @_ ;
  48.   open  (OUT, ">$bloc") || warn "peut pas créer $bloc";
  49.   print OUT $text ; close OUT ;
  50. }
  51.  
  52. sub outcat { my ($bloc, $text) = @_ ;
  53.   open  (OUT, ">>$bloc") || warn "peut pas créer $bloc";
  54.   print OUT $text ; close OUT ;
  55. }
  56.