[SPIP Zone] r4816 - in /_outils_/svnup2ftp: svnup2ftp svnup2ftpandplugin

Author: rudjob@gmail.com
Date: Tue Aug 22 23:06:35 2006
New Revision: 4816

Log:
Ajout d'un script perl svnup2ftpandplugin permettant la mise a jour de son site local spip ainsi que des plugins sous svn puis de transferer les ajouts, modifications, suppressions provenant du svn checkout sur son serveur distant qui ne possède pas subversion. L'utilisation de ce script est placé en commentaire au début du script, vous devez le configurer afin qu'il réponde à vos demandes

Added:
    _outils_/svnup2ftp/svnup2ftpandplugin (with props)
Modified:
    _outils_/svnup2ftp/svnup2ftp

Modified: _outils_/svnup2ftp/svnup2ftp

--- _outils_/svnup2ftp/svnup2ftp (original)
+++ _outils_/svnup2ftp/svnup2ftp Tue Aug 22 23:06:35 2006
@@ -17,7 +17,7 @@
# Windows #
###################################################################

-#use strict;
+use strict;
use warnings;
use File::Spec ;
use Net::FTP ;
@@ -44,20 +44,20 @@
#nom du fichier récapitulatif de tous les changements
my $file_transfer = "file_transfer" ;

-print "Vous utilisez actuellement un script Perl qui vous permettra de mettre à jour votre version de spip sur votre serveur distant en comparaison avec votre version local \n Etes-vous sur de vouloir continuez (y ou n):\n" ;
+print "Vous utilisez actuellement un script Perl qui vous permettra de mettre à jour votre version de spip sur votre serveur distant en comparaison avec votre version local \n Etes-vous sur de vouloir continuez ? (y ou n):\n" ;
my $var = <STDIN> ;
chomp($var) ;
if ($var ne 'y' ){
  print(" Au revoir\n") ;
   exit( 1 ) ;
  }
-print "Création d'un répertoire temporaire $local_rep pour effectuer les manipulations de fichiers et permettre l'archivage des fichiers modifier et supprimer\n Ce répertoire sera supprimer à la fin du script (Pas besoin de stocker inutilement des données) :slight_smile: \n" ;
+print "Création d'un répertoire temporaire $local_rep pour effectuer les manipulations de fichiers et permettre l\'archivage des fichiers modifier et supprimer\n Ce répertoire sera supprimer à la fin du script (Pas besoin de stocker inutilement des données) :slight_smile: \n" ;
if ( -e $local_rep) {
   system( "rm -r $local_rep" ) ;
}
system( "mkdir -p $local_rep" ) ;

-print "Première connexion ftp à votre serveur ftp pour récupérer le numéro de la version svn de votre serveur distant\n Cette étape ne modifira aucun de vos fichiers\n" ;
+print "Première connexion à votre serveur ftp pour récupérer le numéro de la version svn de votre serveur distant\n Cette étape ne modifiera aucun de vos fichiers\n" ;
my $ftp = Net::FTP->new("$nom_du_serveur_ftp",
       Debug => 0, Passive =>1 ) or die("non no");
$ftp->login("$login_ftp","$motdepasse_ftp") or die "Cannot login ", $ftp->message;
@@ -127,8 +127,8 @@
     exit( 1 ) ;
   }
   
-## Imprimer svn log dans le fichier toto
-system( "svn log -r $rev_num:$rev_num_local -v > toto" ) ;
+## Imprimer svn log dans le fichier toto_svn2ftp
+system( "svn log -r $rev_num:$rev_num_local -v > toto_svn2ftp" ) ;

my @fileadd = () ;
my @repadd = () ;
@@ -136,11 +136,7 @@
my @repdelete = () ;
my @test = () ;
my $test_rep ;
-my $i = 0 ;
-my $okd = 0 ;
-my $okdr = 0 ;
-my $oka = 0 ;
-my $okar = 0 ;
+my ( $i, $okd, $okdr, $oka, $okar) = ( 0, 0, 0, 0, 0 ) ;
my $typemodif = "" ;
my $filename = "" ;
sub add_file_or_directory{
@@ -284,40 +280,38 @@
}

## Analyse du svn log pour découvrir les fichiers ajoutés modifié ou supprimés
-open ( HANDLE, "toto" ) ;
+open ( HANDLE, "toto_svn2ftp" ) ;
while (<HANDLE>) {
   chomp( $_ );
- # if ( $_ =~ /^(\s){3}(\w)?\s*(\S*)(\s\(de\s\/spip\/)?([0-9a-zA-Z\/]*)?.*/ ) {
   if ( $_ =~ /^(\s){3}(\w)?\s*(\S*)(\s\(de\s\/spip\/)?([0-9a-zA-Z\/\.]*)?.*/ ) {
     my $file = $3 ;
     $typemodif = $2 ;
- local @test1 = split(/\//, $file );
+ my @test1 = split(/\//, $file );
     shift(@test1) ;
     shift(@test1) ;
     $file = join( '/', @test1 );

     if ( $5 ne "" ) {
- $filenameold = $5 ;
- @testold = split(/\//, $filenameold );
+ my $filenameold = $5 ;
+ my @testold = split(/\//, $filenameold );
       if ( $testold[$#testold] =~ /\w*\.\w*/ ) {
       delete_file_or_directory($filenameold) ;
       add_file_or_directory( $file ) ;
       } else {
     delete_file_or_directory($filenameold) ;
- system("ls -R $file>tutu");
- open ( HAND, "tutu" ) ;
+ system("ls -R $file>tutu_svn2ftp");
+ open ( HAND, "tutu_svn2ftp" ) ;
     my $new_directory = "";
     while (<HAND>) {
       chomp( $_ );
       if ( $_ =~ /^([0-9a-zA-Z\/\.]*):.*/ ) {
         $new_directory = $1 ;
       } elsif ( $_ ne '' && $_ =~ /\w*\.\w*/ ) {
- my $filenamenew = $new_directory."/".$_ ;
- add_file_or_directory($filenamenew) ;
+ add_file_or_directory($new_directory."/".$_) ;
       }
     }
     close( HAND ) ;
- system("rm tutu");
+ system("rm tutu_svn2ftp");
   }
       } else {
   if ( ($typemodif =~ "A") || ($typemodif =~ "M") ) {
@@ -329,11 +323,11 @@
     }
   }
close ( HANDLE ) ;
-system( "rm toto" ) ;
+system( "rm toto_svn2ftp" ) ;

-$file_transfert = "file_transfertsvn".$rev_num."to_svn".$rev_num_local ;
-$file_delete = "file_deletesvn".$rev_num."to_svn".$rev_num_local ;
-open ( OUT, ">$file_transfert" ) ;
+my $file_transfert = "file_transfertsvn".$rev_num."to_svn".$rev_num_local ;
+my $file_delete = "file_deletesvn".$rev_num."to_svn".$rev_num_local ;
+open ( OUT, ">$file_transfert.txt" ) ;
print OUT "Dossiers ajoutés\n" ;
print "Dossiers ajoutés\n" ;

@@ -344,7 +338,7 @@

print OUT "\n\nFichiers ajoutés\n" ;
print "\n\nFichiers ajoutés\n" ;
-foreach $v (@fileadd) {
+foreach my $v (@fileadd) {
   system( "cp --parents $v $local_rep/put/" ) ;
   print OUT "$v\n" ;
}
@@ -355,19 +349,19 @@
chdir "$dir_work" ;
system( "cp $local_rep/put/$file_transfert.tgz ." ) ;

-open ( OUT, ">$file_delete" ) ;
+open ( OUT, ">$file_delete.txt" ) ;
print OUT "\n\nFichiers supprimés\n" ;
-foreach $v (@filedelete) {
+foreach my $v (@filedelete) {
   print OUT "$v\n" ;
}

print OUT "\n\nDossiers supprimés\n" ;

-foreach $v (@repdelete) {
+foreach my $v (@repdelete) {
   print OUT "$v\n" ;
}
close( OUT ) ;
-print "Les fichiers à transférer sont listés dans le fichier $file_transfert et une archive est faite dans $file_transfert.tgz\n Les fichiers à supprimmer sont listés dans le fichier $file_delete\n" ;
+print "Les fichiers à transférer sont listés dans le fichier $file_transfert.txt et une archive est faite dans $file_transfert.tgz\n Les fichiers à supprimmer sont listés dans le fichier $file_delete.txt\n" ;
print "Dernière étape du script le transfert ftp ainsi que la suppression des fichiers obsolètes\n Voulez vous continuer (y ou n):\n" ;
$var = <STDIN> ;
chomp($var) ;
@@ -392,13 +386,13 @@

print "\n\nFichiers ajoutés\n" ;

-foreach $v (@fileadd) {
+foreach my $v (@fileadd) {
   $ftp->put("$local_rep/put/$v", "$v" ) ;
   print "$v\n" ;
}

print "\n\nFichiers supprimés\n" ;
-foreach $v (@filedelete) {
+foreach my $v (@filedelete) {
   $ftp->get("$v", "$local_rep/get/$v" ) ;
   $ftp->delete("$v") ;
   print "$v\n" ;
@@ -406,7 +400,7 @@

print "\n\nDossiers supprimés\n" ;

-foreach $v (@repdelete) {
+foreach my $v (@repdelete) {
   $ftp->rmdir("$v", "true" ) ;
   print "$v\n" ;
}
@@ -421,5 +415,5 @@
print "Fin Connexion ftp\n" ;

system( "rm -r $local_rep" ) ;
-print "Fin du script\n les fichiers supprimés de votre serveur distant sont listés dans $file_delete \n";
+print "Fin du script\n les fichiers supprimés de votre serveur distant sont listés dans $file_delete.txt \n";
print "J'espère que ce script a convenu à vos exigences\n ";

Added: _outils_/svnup2ftp/svnup2ftpandplugin

--- _outils_/svnup2ftp/svnup2ftpandplugin (added)
+++ _outils_/svnup2ftp/svnup2ftpandplugin Tue Aug 22 23:06:35 2006
@@ -0,0 +1,614 @@
+#!/usr/bin/perl -w
+
+use strict;
+use warnings;
+use File::Spec ;
+use Net::FTP ;
+
+######################################################################################
+# Script sous perl qui simule un svn checkout SPIP et des plugins que vous utilisez #
+# par différence entre le site local et le site distant. #
+# #
+# Comment l'utiliser: #
+# Téléchargez le script dans le répertoire où vous avez #
+# installez votre spip local #
+# Puis éditez les 4 paramètres personnels à modifier #
+# rajoutez les plugins que vous utilisez grace à la fonction ajouter_les_mis_a_jour #
+# Un exemple de configuration est donnée à la suite de ce paragraphe #
+# Rendez le script exécutable par un chmod u+x svnup2ftpandplugin #
+# enfin lancez la commande ./svnup2ftpandplugin #
+# #
+# Testé sous Linux où ça fonctionne. Pour Windows, il faut #
+# installer un svn ligne de commande et passer les commandes #
+# système en DOS. Le test n'a pas ete pousse plus loin sous #
+# Windows #
+######################################################################################
+
+

[... 592 lines stripped ...]