Changeset 44014 in spip-zone


Ignore:
Timestamp:
Jan 30, 2011, 9:17:44 PM (9 years ago)
Author:
eric@…
Message:

On rajoute la génération du fichier traductions.txt à partir d'une nouvelle balise <salvatore> à insérer dans plugin.xml.
Le traitement des modules n'appartenant pas à un plugin est sujet à modification.
On rajoute une explication pour l'argument 4 et un commentaire pour chaque argument de la fonction empaqueteur

Location:
_outils_/smart_paquets
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _outils_/smart_paquets/empaqueteur.php

    r40015 r44014  
    77        echo "Vous pouvez indiquer en second argument le repertoire relatif a ./ dans lequel sera fait le checkout\n";
    88        echo "Vous pouvez indiquer en troisiemme argument l'email du webmestre\n";
     9        echo "Vous pouvez indiquer en quatrieme argument l'email de l'emetteur\n";
    910        die();
    1011}
    1112include('inc_empaqueteur.php');
    12 empaqueteur($argv[1],
    13            isset($argv[2]) ? $argv[2] : '',
    14            'paquets',
    15            'archivelist.txt',
    16            "archives",
    17            'plugin.xml',
    18            'svn',
    19            isset($argv[3]) ? $argv[3] : '',
    20            isset($argv[4]) ? $argv[4] : '')
     13empaqueteur($argv[1],                                   // $url
     14           isset($argv[2]) ? $argv[2] : '', // $dir_repo
     15           'paquets',                                           // $dir_paq
     16           'archivelist.txt',                           // $src
     17           "archives",                                          // $dest
     18           'plugin.xml',                                        // $xml
     19           'svn',                                                       // $nom_vcs
     20           isset($argv[3]) ? $argv[3] : '',     // $mail_to
     21           isset($argv[4]) ? $argv[4] : '')     // $mail_from
    2122?>
  • _outils_/smart_paquets/empaqueteur_plugin.php

    r43986 r44014  
    22
    33// Construit la concatenation des informations essentielles
    4 // contenu dans les fichiers plugin.xml
    5 
    6 function empaqueteur_plugin($depot, $zips)
    7 {
     4// contenu dans les fichiers plugin.xml et des informations relatives a chaque paquet
     5// Construit egalement les informations de traduction par salvatore a destination du fichier traductions.txt
     6function empaqueteur_plugin($depot, $zips) {
    87        $xml = '';
    9         foreach($zips as $zip => $res) {
    10           list($size, $time, $source, $commit, $desc) = $res;
     8        $salvatore = '';
     9        foreach($zips as $zip => $infos) {
     10                list($size, $time, $source, $commit, $plugin_xml) = $infos;
     11                // Bloc d'info du paquet
    1112                $xml .= "<archive id=\"$zip\">
    1213<file>$zip</file>
     
    1516<source>$source</source>
    1617<last_commit>$commit</last_commit>
    17 $desc
     18$plugin_xml
    1819</archive>\n\n";
     20                // Bloc d'info pour Salvatore si il existe
     21                if (preg_match_all("#<salvatore\s+module=['\"]+(\w*)['\"]+\s+reference=['\"]+(\w*)['\"]+\s*/>#i", $plugin_xml, $matches)) {
     22                        foreach ($matches[1] as $_i => $_module) {
     23                                $salvatore .= rtrim($depot['url_serveur'], '/') . '/' . rtrim($source, '/') . '/;' .
     24                                                          $_module . ';' .
     25                                                          $matches[2][$_i] . "\n";
     26                        }
     27                }
    1928        }
     29
     30        // On complete les archives avec les informations du depot
     31        // Pour l'instant ce bloc n'implemente pas la nouvelle DTD
    2032        if (!$xml) return '';
    21         // Construction du bloc xml du depot
    22         // Pour l'instant ce bloc n'implemente pas la nouvelle DTD
    2333        $xml_depot = '';
    2434        foreach ($depot as $_balise => $_valeur) {
    2535                $xml_depot .= "<$_balise>$_valeur</$_balise>\n";
    2636        }
    27         if ($xml_depot) $xml_depot = "<depot>\n$xml_depot\n</depot>\n";
    28 
    29         return "$xml_depot<archives>
     37        if ($xml_depot)
     38                $xml_depot = "<depot>\n$xml_depot</depot>\n";
     39        $xml = "$xml_depot<archives>
    3040$xml
    3141</archives>";
     42
     43        // On complete les informations salvatore avec celles des modules SPIP et du cas de forum.spip.net
     44        // Ce traitement est temporaire, il faudrait trouver une autre manier pour salvatore de les connaitre
     45        // On le limite au depot SPIP-Zone
     46        if ($depot['titre'] == 'SPIP-Zone') {
     47                $salvatore .= "\n
     48#
     49# SPIP (core)
     50#
     51svn://trac.rezo.net/spip/spip/ecrire/lang/;spip;fr
     52svn://trac.rezo.net/spip/spip/ecrire/lang/;ecrire;fr
     53svn://trac.rezo.net/spip/spip/ecrire/lang/;public;fr
     54#
     55# AUTRES
     56#
     57# forum.spip.org
     58svn://zone.spip.org/spip-zone/_galaxie_/forum.spip.org/forum.spip.org_2009/lang/;forumspip;fr
     59# gestion d'inscription mailman (obsolete)
     60svn://zone.spip.org/spip-zone/_plugins_/mailman_popup/lang/;listes;fr
     61# spip_loader
     62svn://zone.spip.org/spip-zone/_dev_/spip_loader/;tradloader;fr\n";
     63        }
     64       
     65        return array($xml, $salvatore);
    3266}
    3367
    34 function empaqueteur_plugin_logo($desc, $dir)
    35 {
    36   return !preg_match('#<icon[^>]*>\s*(.+)\s*</icon>#i', $desc, $r) ? '' : ($dir . '/' . trim($r[1]));
     68
     69// Renvoie le path complet du logo a partir de la balise icon de plugin.xml et de la racine des sources
     70function empaqueteur_plugin_logo($plugin_xml, $dir_source) {
     71  return !preg_match('#<icon[^>]*>\s*(.+)\s*</icon>#i', $plugin_xml, $matches) ? '' : ($dir_source . '/' . trim($matches[1]));
    3772}
     73
    3874?>
  • _outils_/smart_paquets/inc_empaqueteur.php

    r43986 r44014  
    2929        } elseif ($mail_to) empaqueteur_mail($erreurs, $mail_to, $mail_from);
    3030
    31         $all = $producteur($depot, $zips);
    32         if ($all)
    33                 empaqueteur_xml_archives($all, $dir_paq, $dir_repo);
    34         else    echo_trace("Aucun Zip produit");
     31        list($archives, $salvatore) = $producteur($depot, $zips);
     32        if ($archives)
     33                empaqueteur_xml_archives($archives, $dir_paq, $dir_repo);
     34        else
     35                echo_trace("Aucun Zip produit");
     36
     37        if ($salvatore)
     38                empaqueteur_salvatore($salvatore, $dir_paq, $dir_repo);
     39        else
     40                echo_trace("Aucune traduction avec Salvatore");
    3541}
    3642
     
    5258        }
    5359        echo_trace("$f intact (taille: $xml)");
     60}
     61
     62function empaqueteur_salvatore($salvatore, $dir_paq, $dir_repo)
     63{
     64        $taille = strlen($salvatore);
     65        $fichier = $dir_paq . $dir_repo . 'traductions.txt';
     66        $old = (file_exists($fichier)) ? trim(file_get_contents($fichier)) : '';
     67        if ($old != $salvatore) {
     68                echo_trace("Nouveau $fichier de taille $taille");
     69                file_put_contents($fichier, $salvatore);
     70                return;
     71        }
     72        echo_trace("$fichier intact (taille: $taille)");
    5473}
    5574
Note: See TracChangeset for help on using the changeset viewer.