Changeset 92921 in spip-zone


Ignore:
Timestamp:
Nov 14, 2015, 2:44:20 PM (4 years ago)
Author:
marcimat@…
Message:

Optimiser la création de la documentation phpdoc des plugins en ne régénérant pas la doc si un plugin n'a pas eu de mise à jour depuis la précédente génération.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _galaxie_/code.spip.net/autodoc/trunk/src/autodoc/Helpers/Generator.php

    r92919 r92921  
    241241            $this->setOption('presentation', null);
    242242
    243             $ok =  $this->createDirectories($prefixe)
    244                 && $this->getSvnSource($present['source'])
    245                 && $this->retrouverInfoPaquetXml()
    246                 && $this->prepareConfigXml()
    247                 && $this->clearLogs()
    248                 ;
     243            $ok = false;
     244            $update = true;
     245
     246            if ($this->createDirectories($prefixe)) {
     247                $revision_actuelle = $this->recuperer_revision_svn();
     248                $this->output->writeln("* Révision actuelle : " . $revision_actuelle);
     249               
     250                if ($this->getSvnSource($present['source'])) {
     251                    $ok = $this->retrouverInfoPaquetXml()
     252                        && $this->prepareConfigXml();
     253
     254                    if ($ok) {
     255                        // pas besoin de mettre à jour, si l'update n'a pas augmenté la révision
     256                        $revision_nouvelle = $this->recuperer_revision_svn();
     257                        $this->output->writeln("* Révision nouvelle : " . $revision_nouvelle);
     258                        if ($revision_nouvelle > $revision_actuelle) {
     259                            $ok = $ok && $this->clearLogs();
     260                        } else {
     261                            $update = false;
     262                        }
     263                    }
     264                }
     265            }
     266            if (!$update) {
     267                $this->output->writeln("<info>* Mise à jour non nécessaire</info>");
     268                continue;
     269            }
    249270            if (!$ok) {
    250271                $nb_erreur++;
     
    536557        }
    537558
     559        // On récupère le numéro de dernière révision, ça peut servir
     560        if ($revision = $this->recuperer_revision_svn()) {
     561            $this->svn['revision'] = $revision;
     562        }
     563
     564        return true;
     565    }
     566
     567    /**
     568     * Retrouver le numéro de la dernière révision du dossier de travail
     569     *
     570     * @return string Numéro de révision (si connu)
     571    **/
     572    function recuperer_revision_svn() {
     573        $revision = '';
     574
    538575        // Ici, on a les bons fichiers SVN à jour
    539         // on récupère le numéro de dernière révision, ça peut servir
     576        // on récupère le numéro de dernière révision
    540577        if ($res = $this->makeSvnCommand('info --xml')) {
    541578            // nous avons un svn… verifions que c'est le bon !
    542579            $xml = simplexml_load_string(implode("", $res));
    543             $this->svn['revision'] = (string)$xml->entry->commit['revision'];
    544         }
    545 
    546         return true;
    547     }
    548 
     580            $revision = (string)$xml->entry->commit['revision'];
     581        }
     582
     583        return $revision;
     584    }
    549585
    550586    /**
Note: See TracChangeset for help on using the changeset viewer.