Changeset 119858 in spip-zone


Ignore:
Timestamp:
Jan 20, 2020, 1:53:10 PM (8 months ago)
Author:
Cerdic
Message:

gestion du commit en git

Location:
_plugins_/trad-lang/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk

    • Property subgit:lock:24f5b9145cf8e24168d135f23aeca643eb48c6e5 deleted
    • Property subgit:lock:559e071284f799e18c1a0d8d80ca5b00feb1492d set to 2020-01-20T15:00:29.394
  • _plugins_/trad-lang/trunk/inc/salvatore.php

    r119855 r119858  
    8383
    8484                if (!defined('_SALVATORE_AUTHOR_COMMITS')) {
    85                         define('_SALVATORE_AUTHOR_COMMITS', 'salvatore@rezo.net');
     85                        define('_SALVATORE_AUTHOR_COMMITS', 'Salvatore <salvatore@rezo.net>');
    8686                }
    8787
  • _plugins_/trad-lang/trunk/inc/salvatore_ecriveur.php

    r119856 r119858  
    274274                        $auteur_versions = sql_allfetsel('DISTINCT id_auteur', 'spip_versions',  $where);
    275275                        if (count($auteur_versions)==1){
    276                                 $email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur = ' . intval($auteur_versions[0]['id_auteur']));
    277                                 if ($email){
    278                                         $commit_infos[$lang]['author'] = $email;
    279                                         salvatore_log("Le commiteur pour la langue $lang : $email");
     276                                $auteur = sql_fetsel('nom,email', 'spip_auteurs', 'id_auteur = ' . intval($auteur_versions[0]['id_auteur']));
     277                                if ($auteur and $auteur['email']){
     278                                        $commit_infos[$lang]['author'] = $auteur['email'];
     279                                        if ($auteur['nom']) {
     280                                                $commit_infos[$lang]['author'] = $auteur['nom'] . "<" . $commit_infos[$lang]['author'] . ">";
     281                                        }
     282                                        salvatore_log("Le commiteur pour la langue $lang : " . $commit_infos[$lang]['author']);
    280283                                }
    281284                        }
  • _plugins_/trad-lang/trunk/inc/salvatore_git.php

    r119844 r119858  
    2525        Cerdic <cedric@yterium.com>
    2626*/
     27
     28/**
     29 * Formate l'auteur en Nom <email> si jamais seul l'email est fourni
     30 * @param string $author
     31 * @return string
     32 */
     33function salvatore_git_format_author($author) {
     34        if (strpos($author, '<') !== false and strpos($author, '>') !== false) {
     35                return $author;
     36        }
     37        else {
     38                $name = explode('@', $author);
     39                $name = reset($name);
     40                return "$name <$author>";
     41        }
     42}
    2743
    2844/**
     
    6884        return implode("\n", $output);
    6985}
     86
     87/**
     88 * Commit une liste de fichiers avec un message et auteur fourni
     89 * @param string $dir_repo
     90 * @param array $files
     91 * @param string $message
     92 * @param string $author
     93 * @param string $user
     94 * @param string $pass
     95 * @return array
     96 */
     97function salvatore_git_commit_files($dir_repo, $files, $message, $author, $user=null, $pass=null) {
     98        $files = array_map('escapeshellarg', $files);
     99        $files = implode(' ', $files);
     100
     101        $d = getcwd();
     102        chdir($dir_repo);
     103        $output = array();
     104        $res = true;
     105        // on ajoute tous les fichiers pour commit
     106        $commands = [
     107                "git add $files 2>&1",
     108                "git commit -m " . escapeshellarg($message)." --author=".escapeshellarg(salvatore_git_format_author($author)),
     109        ];
     110
     111        foreach ($commands as $command) {
     112                $output[] = "> $command";
     113                $return_var = 0;
     114                exec($command, $output, $return_var);
     115                // si une erreur a eu lieu le signaler dans le retour
     116                if ($return_var) {
     117                        $res = false;
     118                }
     119        }
     120        chdir($d);
     121
     122        return array($res, implode("\n", $output));
     123}
  • _plugins_/trad-lang/trunk/inc/salvatore_pousseur.php

    r119857 r119858  
    9393                                $commits_todo = array();
    9494                                $salvatore_status_file = "salvatore_" . $source['methode'] . "_status_file";
     95                                $salvatore_commit_files = "salvatore_" . $source['methode'] . "_commit_files";
     96                                $salvatore_push_repository = "salvatore_" . $source['methode'] . "_push_repository";
     97
    9598                                foreach ($commit_infos as $what => $commit_info) {
    9699
     
    158161                                        salvatore_log("\t" . str_replace("\n", "\n\t", $message));
    159162
    160                                         // TODO
    161                                         //salvatore_git_commit_files($dir_depots . $source['dir_checkout'], $commit_todo['files'], $message)
    162                                 }
     163                                        list($res,$out) = $salvatore_commit_files($dir_depots . $source['dir_checkout'], $commit_todo['files'], $message, $author, empty($source['user']) ? null : $source['user'], empty($source['pass']) ? null : $source['pass']);
     164                                        salvatore_log($out);
     165                                        if (!$res) {
     166                                                salvatore_fail("[Pousseur] Erreur sur $module", "Erreur lors du commit :\n$out");
     167                                        }
     168                                }
     169
     170                                // TODO : push
     171                                // ne fera rien en svn (deja pushe)
    163172
    164173                        }
Note: See TracChangeset for help on using the changeset viewer.