Changeset 43250 in spip-zone
- Timestamp:
- Dec 30, 2010, 4:10:21 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_outils_/smart_paquets/inc_empaqueteur.php
r42836 r43250 14 14 // http://fr2.php.net/manual/fr/function.file-put-contents.php 15 15 16 function empaqueteur_xml_archives($ zips, $dir_paq, $dir_repo, $srcname)16 function empaqueteur_xml_archives($depot, $zips, $dir_paq, $dir_repo, $srcname) 17 17 { 18 18 $xml = ''; … … 41 41 } 42 42 if ($xml) { 43 $all = "<archives> 43 $xml_depot = empaqueteur_xml_depot($depot); 44 $all = "$xml_depot 45 <archives> 44 46 $xml 45 47 </archives>"; … … 56 58 } 57 59 60 // Fonction de construction du bloc xml du depot 61 // Pour l'instant ce bloc n'implemente pas la nouvelle DTD 62 function empaqueteur_xml_depot($depot) { 63 $xml = ''; 64 foreach ($depot as $_balise => $_valeur) { 65 $xml .= "<$_balise>$_valeur</$_balise>\n"; 66 } 67 if ($xml) 68 $xml = "<depot>\n$xml\n</depot>"; 69 70 return $xml; 71 } 72 58 73 function empaqueteur($url, $dir_repo, $dir_paq, $src, $dest, $xml, $nom_vcs, $mail_to, $mail_from) 59 74 { … … 65 80 $dir_paq = rtrim($dir_paq ? $dir_paq : '.','/') .'/'; 66 81 67 $zips= empaqueteur_zips($url, $dir_repo, $dir_paq, $src, $nom_vcs);82 list($depot, $zips) = empaqueteur_zips($url, $dir_repo, $dir_paq, $src, $nom_vcs); 68 83 if (!$erreurs) { 69 84 // ne pas nettoyer le fichier archives.xml ! … … 77 92 if (!function_exists($dest = 'empaqueteur_xml_' . $nom_dest)) { 78 93 echo_trace("Producteur xml inconnu: '$nom_dest'"); 79 } else $dest($ zips, $dir_paq, $dir_repo, $xml);94 } else $dest($depot, $zips, $dir_paq, $dir_repo, $xml); 80 95 } 81 96 } … … 93 108 94 109 // Creation des repertoires de travail et import initial 95 96 110 if (!file_exists($dir_repo)){ 97 111 preparer_chemin(dirname(rtrim($dir_repo,'/'))); … … 103 117 preparer_chemin($dir_tmp); 104 118 105 // si le repo est en file:// on fait un svnsync dessus,119 // Si le repo est en file:// on fait un svnsync dessus, 106 120 // le up est fait par un hook post-commit sur ce qui a change uniquement 107 121 // sauf une fois par jour … … 115 129 } 116 130 117 foreach(liste_paquets($dir_repo . $src) as $paquet){ 131 list($depot, $paquets) = liste_paquets($dir_repo . $src); 132 foreach($paquets as $paquet){ 118 133 if ($paquet['revision']=='HEAD') { 119 134 $source = rtrim($paquet['source'],'/'); … … 131 146 // copier le svn.revision de stable/spip.zip qui permet de connaitre la derniere version stable 132 147 if ($zip=="stable/spip.zip") { 133 // necessaire de remettre le fichier a la date actuelle134 // car il a la date du dernier commit sur ce paquet135 # touch($dsource."/svn.revision");148 // necessaire de remettre le fichier a la date actuelle 149 // car il a la date du dernier commit sur ce paquet 150 # touch($dsource."/svn.revision"); 136 151 copie_update($rev,$dir_paq.dirname($zip)."/svn.revision"); 137 152 } 138 // supprimer le fichier info revision cree ci-dessus153 // supprimer le fichier info revision cree ci-dessus 139 154 @unlink($rev); 140 155 $zips[$zip] = array( … … 148 163 } 149 164 echo_trace(count($zips) . " trouves"); 150 return $zips;165 return array($depot, $zips); 151 166 } 152 167 … … 364 379 } 365 380 381 $depot = array(); 366 382 $paquets = array(); 367 383 foreach($archivefile as $ligne=>$lignepaquet){ 368 384 $lignepaquet=rtrim($lignepaquet);//on vire le retour ligne de la fin 369 if (substr($lignepaquet,0,1)!="#" AND strlen($lignepaquet)){ 370 //on separe les parametres 371 // et on fixe ceux manquants 372 $a = explode(";",$lignepaquet); 373 $b = preg_split("/:/",$a[0]); 374 $source = $b[0]; 375 $svn_version = empty($b[1]) ?'HEAD' : $b[1]; 376 $nom_paquet = empty($a[1]) ? basename($source) : $a[1]; 377 $nom_dossier = empty($a[2]) ? $nom_paquet : $a[2]; 378 379 $paquets[] = array('source'=>$source,'nom'=>$nom_paquet,'nom_dossier'=>$nom_dossier,'revision'=>$svn_version); 380 } 381 } 382 385 if (strlen($lignepaquet)) { 386 if (substr($lignepaquet,0,1)!="#") { 387 // C'est une ligne de fefinition d'un paquet : 388 // - on separe les parametres 389 // - et on fixe ceux manquants 390 $a = explode(";",$lignepaquet); 391 $b = preg_split("/:/",$a[0]); 392 $source = $b[0]; 393 $svn_version = empty($b[1]) ?'HEAD' : $b[1]; 394 $nom_paquet = empty($a[1]) ? basename($source) : $a[1]; 395 $nom_dossier = empty($a[2]) ? $nom_paquet : $a[2]; 396 // Ajout au tableau des paquets a construire 397 $paquets[] = array('source'=>$source,'nom'=>$nom_paquet,'nom_dossier'=>$nom_dossier,'revision'=>$svn_version); 398 } 399 else if (preg_match('#@([^=\s]+)\s*=(.+)$#', substr($lignepaquet, 1), $matches)){ 400 // C'est une ligne d'information sur le depot 401 // - on stocke le parametre trouve 402 $depot[trim($matches[1])] = trim($matches[2]); 403 } 404 } 405 } 406 407 echo_trace(count($depot)." informations de depot definies"); 383 408 echo_trace(count($paquets)." paquets definis"); 384 return $paquets;409 return array($depot, $paquets); 385 410 } 386 411
Note: See TracChangeset
for help on using the changeset viewer.