Changeset 119860 in spip-zone
- Timestamp:
- Jan 20, 2020, 1:53:10 PM (13 months ago)
- Location:
- _plugins_/trad-lang/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/trad-lang/trunk
- Property subgit:lock:e670a558b74eb7058f1a5759957e54a0ac6a082c deleted
-
Property
subgit:lock:0bf209dc4d00f6851146ea94982d0809a6908a7b
set to
2020-01-20T15:00:30.963
-
_plugins_/trad-lang/trunk/inc/salvatore.php
r119858 r119860 86 86 } 87 87 88 // TODO : a tester/valider quand on sera en prod si on utilise encore 88 89 if (!defined('_SALVATORE_SVN_PROPSET')) { 89 define('_SALVATORE_SVN_PROPSET', true);90 define('_SALVATORE_SVN_PROPSET', false); 90 91 } 91 92 -
_plugins_/trad-lang/trunk/inc/salvatore_pousseur.php
r119859 r119860 187 187 } 188 188 189 return;190 191 /*192 foreach ($liste_sources as $source){193 $credentials = false;194 $module = $source[1];195 salvatore_log("===== Module $module ======================================\n");196 197 198 $f = _DIR_SALVATORE_TMP . $module . '/';199 200 /**201 * On ajoute les .xml202 * /203 salvatore_log(exec("svn add --quiet $f*xml 2>/dev/null") . "\n");204 $ignore = array(205 // 'spip','ecrire','public'206 'couteau', 'couteauprive', 'paquet-couteau_suisse'// désactivés suite à scandale, je ne sais pas comment le gérer correctement207 );208 209 if (in_array($module, $ignore)){210 salvatore_log("$module ignore'\n");211 } else {212 $depot = exec("env LC_MESSAGES=en_US.UTF-8 svn info $f |awk '/^Repository Root/ { print $3 }'") . '/';213 $svn_url = exec("env LC_MESSAGES=en_US.UTF-8 svn info $f |awk '/^URL/ { print $2 }'") . '/';214 $path_svn = str_replace($depot, '', $svn_url);215 $message = $message_commit = $commiteurs = false;216 if (file_exists($f . 'message_commit.inc')){217 $message = true;218 require_once(dirname(__FILE__) . '/' . str_replace('./', '', $f) . 'message_commit.inc');219 }220 221 if (is_array($commiteurs) && count($commiteurs)>0){222 foreach ($commiteurs as $lang => $email){223 if (strlen($email)>1){224 $message_commit_unique = "[Salvatore] [source:$path_svn $module] Export depuis http://trad.spip.net de la langue $lang";225 /**226 * Si plusieurs commiteurs (veut dire que plusieurs fichiers sont à commiter)227 * ou si le fichier original est modifié, on ne commit que fichier par fichier228 * /229 if (count($commiteurs)>1 || in_array(substr(exec('svn status ' . _DIR_SALVATORE_TMP . $source[1] . '/' . $source[1] . '_' . $source[2] . '.php'), 0, 1), array('A', 'M'))){230 $path = $f . $module . '_' . $lang . '.php';231 } else {232 /**233 * Sinon on ne s'embarasse pas, on balance tout avec cet utilisateur234 * /235 $path = $f;236 }237 salvatore_log("On devrait commiter $path avec comme message '$message_commit_unique' avec l'email $email\n");238 salvatore_log(exec("svn commit $path --username $user --password $pass --no-auth-cache --non-interactive --trust-server-cert -m " . escapeshellarg($message_commit_unique)) . "\n");239 $revision = exec("svn up $path && env LC_MESSAGES=en_US.UTF-8 svn info $path |awk '/^Last Changed Rev/ { print $4 }'");240 if ($propset){241 salvatore_log(exec("svn propset --revprop -r $revision svn:author '$email' $path --username $user --password $pass --no-auth-cache --non-interactive --trust-server-cert") . "\n");242 salvatore_log("svn propset --revprop -r $revision svn:author '$email' $path --username $user --password $pass --no-auth-cache --non-interactive --trust-server-cert\n");243 }244 }245 }246 }247 248 /**249 * Si on a encore un fichier ajouté ou modifié250 * On commite le tout avec salvatore251 * /252 if (strlen(trim(exec("svn status $f |awk /^[MA]/")))>1){253 $commit_message = "[Salvatore] [source:$path_svn $module] Export depuis http://trad.spip.net\n\n";254 $commit_message .= $message_commit . "\n";255 salvatore_log("On commit $f car il reste des fichiers\n");256 salvatore_log(exec("svn commit $f --username $user --password $pass --no-auth-cache --non-interactive --trust-server-cert -m " . escapeshellarg($commit_message)) . "\n");257 $revision_fin = exec("svn up $f && env LC_MESSAGES=en_US.UTF-8 svn info $f |awk '/^Last Changed Rev/ { print $4 }'");258 if (!$credentials && $propset){259 salvatore_log(exec("svn propset --revprop -r $revision_fin svn:author 'salvatore@rezo.net' $f --username $user --password $pass --no-auth-cache --non-interactive --trust-server-cert") . "\n");260 salvatore_log("svn propset --revprop -r $revision_fin svn:author 'salvatore@rezo.net' $f --username $user --password $pass --no-auth-cache --non-interactive --trust-server-cert\n");261 }262 }263 264 if (file_exists($f . 'message_commit.inc')){265 unlink($f . 'message_commit.inc');266 }267 }268 }269 270 return 0;271 /* MAIN ***********************************************************************/ -
_plugins_/trad-lang/trunk/inc/salvatore_svn.php
r119844 r119860 67 67 return implode("\n", $output); 68 68 } 69 70 71 /** 72 * Commit une liste de fichiers avec un message et auteur fourni 73 * 74 * @param string $dir_repo 75 * @param array $files 76 * @param string $message 77 * @param string $author 78 * @param string $user 79 * @param string $pass 80 * @return array 81 */ 82 function salvatore_svn_commit_files($dir_repo, $files, $message, $author, $user=null, $pass=null) { 83 84 // lister deja les fichiers qui necessitent un svn add (fichiers ajoutes qui ne sont pas dans le repo) 85 $files_to_add = array(); 86 foreach ($files as $file) { 87 if (!salvatore_svn_lastmodified_file($dir_repo, $file)) { 88 $files_to_add[] = $file; 89 } 90 } 91 92 $files = array_map('escapeshellarg', $files); 93 $files = implode(' ', $files); 94 95 $files_to_add = array_map('escapeshellarg', $files_to_add); 96 $files_to_add = implode(' ', $files_to_add); 97 98 $d = getcwd(); 99 chdir($dir_repo); 100 $output = array(); 101 $res = true; 102 103 $auth = ""; 104 $auth_disp = ""; 105 if ($user) { 106 $auth .= " --username=".escapeshellarg($user); 107 $auth_disp .= " --username=".escapeshellarg('xxxxx'); 108 } 109 if ($user) { 110 $auth .= " --password=".escapeshellarg($pass); 111 $auth_disp .= " --password=".escapeshellarg('xxxxx'); 112 } 113 114 $commands = []; 115 if ($files_to_add) { 116 $commands[] = "svn add --quiet $files_to_add 2>&1"; 117 } 118 // TODO : activer le commit quand on sera en prod 119 // $commands[] = "svn commit $files{$auth} --no-auth-cache --non-interactive --trust-server-cert -m " . escapeshellarg($message) . " 2>&1"; 120 121 foreach ($commands as $command) { 122 $output[] = "> " . ($auth ? str_replace($auth, $auth_disp, $command) : $command); 123 $return_var = 0; 124 exec($command, $output, $return_var); 125 // si une erreur a eu lieu le signaler dans le retour 126 if ($return_var) { 127 $res = false; 128 } 129 } 130 if ($res and $author and _SALVATORE_SVN_PROPSET) { 131 if ($revision = exec("svn up . && env LC_MESSAGES=en_US.UTF-8 svn info . |awk '/^Last Changed Rev/ { print $4 }'")) { 132 $command = "svn propset --revprop -r $revision svn:author ".escapeshellarg($author). " .{$auth} --no-auth-cache --non-interactive --trust-server-cert"; 133 $output[] = "> " . ($auth ? str_replace($auth, $auth_disp, $command) : $command); 134 exec($command, $output, $return_var); 135 if ($return_var) { 136 $res = false; 137 } 138 } 139 } 140 chdir($d); 141 142 return array($res, implode("\n", $output)); 143 } 144 145 146 147 /** 148 * Rien a faire : en svn le commit push, mais fonction symetrique de git 149 * 150 * @param string $dir_repo 151 * @param null $user 152 * @param null $pass 153 * @return array 154 */ 155 function salvatore_svn_push_repository($dir_repo, $user=null, $pass=null) { 156 return array(true, ''); 157 }
Note: See TracChangeset
for help on using the changeset viewer.