Changeset 119843 in spip-zone


Ignore:
Timestamp:
Jan 20, 2020, 4:38:49 AM (8 months ago)
Author:
Cerdic
Message:

Debut refactoring pousseur

Location:
_plugins_/trad-lang/trunk
Files:
1 added
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk

    • Property subgit:lock:45a4c6d5ffdd522ad2b9578d338873a7d6f109e4 deleted
    • Property subgit:lock:88ad23850774e9762fd2b0b62c102fa1cc68005f set to 2020-01-20T09:05:36.672
  • _plugins_/trad-lang/trunk/inc/salvatore_pousseur.php

    r119842 r119843  
    1818    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    1919
    20     Copyright 2003-2013
     20    Copyright 2003-2020
    2121        Florent Jugla <florent.jugla@eledo.com>,
    2222        Philippe Riviere <fil@rezo.net>,
    2323        Chryjs <chryjs!@!free!.!fr>,
    24                 kent1 <kent1@arscenic.info>
     24        kent1 <kent1@arscenic.info>
     25        Cerdic <cedric@yterium.com>
    2526*/
    2627
    27 // il envoie les fichiers dans le svn
    28 
    29 
    30 require_once(dirname(__FILE__) . '/inc_tradlang.php');
    31 require_once(_DIR_ETC . 'salvatore_passwd.inc');
    32 
    33 if (!isset($SVNUSER) or !isset($SVNPASSWD)){
    34         die('Veuillez indiquer $SVNUSER et $SVNPASSWD dans le fichier ' . _DIR_ETC . 'salvatore_passwd.inc');
     28
     29// il commit et push les fichiers modifies
     30
     31
     32/**
     33 * @param array $liste_sources
     34 * @param string|null $tmp
     35 * @return bool
     36 * @throws Exception
     37 */
     38function salvatore_pousser($liste_sources, $dir_modules=null, $dir_depots=null) {
     39        include_spip('inc/salvatore');
     40        salvatore_init();
     41
     42        if (is_null($dir_modules)) {
     43                $dir_modules = _DIR_SALVATORE_MODULES;
     44        }
     45        salvatore_check_dir($dir_modules);
     46
     47        if (is_null($dir_depots)) {
     48                $dir_depots = _DIR_SALVATORE_DEPOTS;
     49        }
     50        salvatore_check_dir($dir_depots);
     51
     52        $done = array();
     53
     54        foreach ($liste_sources as $source){
     55                salvatore_log("\n<info>--- Module " . $source['module'] . " | " . $source['dir_module'] . " | " . $source['url']."</info>");
     56
     57                $dir_module = $dir_modules . $source['dir_module'];
     58                $module = $source['module'];
     59
     60                // on peut poser un .salvatore.ignore.{module} manuellement pour forcer salvatore a ne jamais pousser certains modules
     61                // (gestion de tensions sur certains plugins/modules)
     62
     63                $file_commit = $dir_module . '/' . $module . '.commit.json';
     64
     65                if (file_exists($dir_module . '/.salvatore.ignore.' . $module)) {
     66                        salvatore_log("<info>Module $module ignoré</info>");
     67                }
     68                else {
     69                        if (!file_exists($file_commit)
     70                          or !$commit_infos = file_get_contents($file_commit)
     71                          or !$commit_infos = json_decode($commit_infos, true)) {
     72                                salvatore_log("<info>Module $module rien à faire (pas de fichier $file_commit ou fichier invalide)</info>");
     73                        }
     74                        else {
     75                                // on a la liste des fichiers a commit
     76                                $message_commit = '';
     77                                if (isset($commit_infos['.message'])) {
     78                                        $message_commit = $commit_infos['.message'];
     79                                        unset($commit_infos['.message']);
     80                                }
     81
     82
     83
     84
     85                        }
     86                }
     87
     88                /*
     89                $url_with_credentials = salvatore_set_credentials($source['methode'], $source['url'], $source['module']);
     90
     91                $dir_checkout = $dir_depots . $source['dir_checkout'];
     92                $dir_module = $dir_modules . $source['dir_module'];
     93                $dir_target = $dir_checkout;
     94                if ($source['dir']) {
     95                        $dir_target .= "/" . $source['dir'];
     96                }
     97
     98                $return = 0;
     99                if (empty($done[$dir_checkout])) {
     100                        $cmd = "checkout.php"
     101                          . ' ' . $source['methode']
     102                                . ($source['branche'] ? ' -b'.$source['branche'] : '')
     103                                . ' ' . $url_with_credentials
     104                                . ' ' . $dir_checkout;
     105
     106                        echo "$cmd\n";
     107                        passthru("export FORCE_RM_AND_CHECKOUT_AGAIN_BAD_DEST=1 && $cmd 2>/dev/null", $return);
     108                        $done[$dir_checkout] = true;
     109                }
     110
     111                if ($return !== 0 or !is_dir($dir_checkout) or !is_dir($dir_target)) {
     112                        $corps = $source['url'] . ' | ' . $source['module'] . "\n" . "Erreur lors du checkout";
     113                        salvatore_fail('[Tireur] : Erreur', $corps);
     114                }
     115
     116                if (file_exists($dir_module) and !is_link($dir_module)) {
     117                        $corps = $source['url'] . ' | ' . $source['module'] . "\n" . "Il y a deja un repertoire $dir_module";
     118                        salvatore_fail('[Tireur] : Erreur', $corps);
     119                }
     120
     121                $dir_target = realpath($dir_target);
     122                if (is_link($dir_module) and readlink($dir_module) !== $dir_target) {
     123                        @unlink($dir_module);
     124                }
     125                if (!file_exists($dir_module)) {
     126                        symlink($dir_target, $dir_module);
     127                }
     128
     129                $fichier_lang_master = $dir_module . '/' . $source['module'] . '_' . $source['lang'] . '.php';
     130                // controle des erreurs : requiert au moins 1 fichier par module !
     131                if (!file_exists($fichier_lang_master)){
     132                        salvatore_fail('[Tireur] : Erreur', "! Erreur pas de fichier de langue maitre $fichier_lang_master");
     133                }
     134                */
     135        }
     136
     137        return true;
    35138}
     139
    36140
    37141$propset = true;
Note: See TracChangeset for help on using the changeset viewer.