Changeset 82795 in spip-zone for _dev_


Ignore:
Timestamp:
May 29, 2014, 2:37:25 PM (5 years ago)
Author:
kent1@…
Message:

Permettre de commiter sur plusieurs serveurs différents en fonction de l'adresse du dépot et non du nom de module uniquement (tout ce qui est sur github par exemple)...

Autres choses non commitées réalisées par le passé

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _dev_/salvatore2/pousseur.php

    r77237 r82795  
    4444
    4545foreach ($liste_sources as $source) {
     46        $credentials = false;
    4647        $module = $source[1];
    4748        trad_log("===== Module $module ======================================\n");
     49       
     50        $domaine_svn = parse_url($source[0]);
     51        $domaine_svn = $domaine_svn['host'];
     52        if(isset($domaines_exceptions) && is_array($domaines_exceptions) && in_array($domaine_svn,$domaines_exceptions)){
     53                /**
     54                 * On est dans une exception (Github?)
     55                 */
     56                if(is_array($domaines_exceptions_credentials) && isset($domaines_exceptions_credentials[$domaine_svn])){
     57                        $user = $domaines_exceptions_credentials[$domaine_svn]['user'];
     58                        $pass = $domaines_exceptions_credentials[$domaine_svn]['pass'];
     59                        $credentials = true;
     60                }
     61        }
    4862        if(isset(${$module.'_user'})){
    4963                $user = ${$module.'_user'};
    5064                $pass = ${$module.'_passwd'};
    51         }else{
     65        }else if(!$credentials){
    5266                $user = $SVNUSER;
    5367                $pass = $SVNPASSWD;
     
    6175        trad_log(exec("svn add --quiet $f*xml 2>/dev/null")."\n");
    6276        $ignore = array(
    63 #               'spip','ecrire','public'
     77        //      'spip','ecrire','public'
     78                'couteau','couteauprive','paquet-couteau_suisse'// désactivés suite à scandale, je ne sais pas comment le gérer correctement
    6479        );
    6580
     
    6782                trad_log("$module ignore'\n");
    6883        else{
     84                $depot = exec("env LC_MESSAGES=en_US.UTF-8 svn info $f |awk '/^Repository Root/ { print $3 }'").'/';
     85                $svn_url = exec("env LC_MESSAGES=en_US.UTF-8 svn info $f |awk '/^URL/ { print $2 }'").'/';
     86                $path_svn = str_replace($depot,'',$svn_url);
    6987                $message = $message_commit = $commiteurs = false;
    7088                if(file_exists($f.'message_commit.inc')){
    7189                        $message = true;
    7290                        require_once(dirname(__FILE__).'/'.str_replace('./','',$f).'message_commit.inc');
    73                         $message_commit .= "\n\nlangues ($module)";
    7491                }
    75                 if(!$message_commit)
    76                         $message_commit = "langues ($module)";
    7792               
    78                 if(is_array($commiteurs)){
    79                         //trad_log("$message_commit\n");
    80                         if(count($commiteurs) > 0){
    81                                 foreach($commiteurs as $lang => $email){
    82                                         if($email){
    83                                                 $message_commit_unique = "[Salvatore] export depuis http://trad.spip.net\n\n";
    84                                                 $message_commit_unique .= "Langue $lang ($module)";
    85                                                 /**
    86                                                  * Si plusieurs commiteurs ou si le fichier original est modifié, on ne commit que fichier par fichier
    87                                                  */
    88                                                 if(count($commiteurs) > 1 || in_array(substr(exec("svn status "._SALVATORE_TMP.$source[1]."/".$source[1]."_".$source[2].".php"),0,1),array('A','M')))
    89                                                         $path = $f.$module.'_'.$lang.'.php';
    90                                                 /**
    91                                                  * Sinon on ne s'embarasse pas, on balance tout avec cet utilisateur
    92                                                  */
    93                                                 else
    94                                                         $path = $f;
    95                                                 trad_log("On devrait commiter $path avec comme message '$message_commit_unique' avec l'email $email\n");
    96                                                 //trad_log(exec("svn commit $path --username $user --password $pass --no-auth-cache --non-interactive -m ".escapeshellarg($message_commit_unique))."\n");
    97                                                 $revision = exec("env LC_MESSAGES=en_US.UTF-8 svn info $path |awk '/^Revision/ { print $2 }'");
    98                                                 //trad_log(exec("svn propset --revprop -r $revision svn:author '$email' $path --username $user --password $pass --no-auth-cache --non-interactive")."\n");
    99                                                 trad_log("svn propset --revprop -r $revision svn:author '$email' $path --username $user --password $pass --no-auth-cache --non-interactive\n");
    100                                         }
     93                if(is_array($commiteurs) && count($commiteurs) > 0){
     94                        foreach($commiteurs as $lang => $email){
     95                                if(strlen($email) > 1){
     96                                        $message_commit_unique = "[Salvatore] [source:$path_svn $module] Export depuis http://trad.spip.net de la langue $lang";
     97                                        /**
     98                                         * Si plusieurs commiteurs (veut dire que plusieurs fichiers sont à commiter)
     99                                         * ou si le fichier original est modifié, on ne commit que fichier par fichier
     100                                         */
     101                                        if(count($commiteurs) > 1 || in_array(substr(exec("svn status "._SALVATORE_TMP.$source[1]."/".$source[1]."_".$source[2].".php"),0,1),array('A','M')))
     102                                                $path = $f.$module.'_'.$lang.'.php';
     103                                        /**
     104                                         * Sinon on ne s'embarasse pas, on balance tout avec cet utilisateur
     105                                         */
     106                                        else
     107                                                $path = $f;
     108                                        trad_log("On devrait commiter $path avec comme message '$message_commit_unique' avec l'email $email\n");
     109                                        trad_log(exec("svn commit $path --username $user --password $pass --no-auth-cache --non-interactive -m ".escapeshellarg($message_commit_unique))."\n");
     110                                        $revision = exec("svn up $path && env LC_MESSAGES=en_US.UTF-8 svn info $path |awk '/^Last Changed Rev/ { print $4 }'");
     111                                        trad_log(exec("svn propset --revprop -r $revision svn:author '$email' $path --username $user --password $pass --no-auth-cache --non-interactive")."\n");
     112                                        trad_log("svn propset --revprop -r $revision svn:author '$email' $path --username $user --password $pass --no-auth-cache --non-interactive\n");
    101113                                }
    102114                        }
     
    108120                 */
    109121                if(strlen(trim(exec("svn status $f |awk /^[MA]/"))) > 1){
    110                         trad_log(strlen(trim(exec("svn status $f |awk /^[MA]/"))));
     122                        $commit_message = "[Salvatore] [source:$path_svn $module] Export depuis http://trad.spip.net\n\n";
     123                        $commit_message .= $message_commit."\n";
    111124                        trad_log("On commit $f car il reste des fichiers\n");
    112                         //trad_log(exec("svn commit $f --username $user --password $pass --no-auth-cache --non-interactive -m ".escapeshellarg($message_commit))."\n");
     125                        trad_log(exec("svn commit $f --username $user --password $pass --no-auth-cache --non-interactive -m ".escapeshellarg($commit_message))."\n");
     126                        $revision_fin = exec("svn up $f && env LC_MESSAGES=en_US.UTF-8 svn info $f |awk '/^Last Changed Rev/ { print $4 }'");
     127                        if(!$credentials){
     128                                trad_log(exec("svn propset --revprop -r $revision_fin svn:author 'salvatore@rezo.net' $f --username $user --password $pass --no-auth-cache --non-interactive")."\n");
     129                                trad_log("svn propset --revprop -r $revision_fin svn:author 'salvatore@rezo.net' $f --username $user --password $pass --no-auth-cache --non-interactive\n");
     130                        }
    113131                }
    114132               
    115                 //if(file_exists($f.'message_commit.inc'))
    116                 //      unlink($f.'message_commit.inc');
     133                if(file_exists($f.'message_commit.inc'))
     134                        unlink($f.'message_commit.inc');
    117135        }
    118136}
Note: See TracChangeset for help on using the changeset viewer.