Comment proposer une modif de spip-cli ?

Bonjour,

J’ai un patch à proposer. Comment le partager sur spip-contrib-outils / spip-cli · GitLab ? Ici, ça suffit ?

diff --git a/src/Command/PluginsSvpTelecharger.php b/src/Command/PluginsSvpTelecharger.php
index 8e74cee..ecedb2b 100644
--- a/src/Command/PluginsSvpTelecharger.php
+++ b/src/Command/PluginsSvpTelecharger.php
@@ -20,7 +20,7 @@ class PluginsSvpTelecharger extends PluginsActiver
 
         foreach ($prefixes as $prefix) {
             $this->io->comment("Plugin en cours d'installation : " . $prefix);
-            $infos = $decideur->infos_courtes('UPPER(pl.prefixe) = LOWER("' . strtoupper($prefix) . '")');
+            $infos = $decideur->infos_courtes('UPPER(pl.prefixe) = UPPER("' . $prefix . '")');
             if (empty($infos['i'])) {
                 $this->io->error('Le plugin ' . $prefix . " n'est pas référencé");
                 continue;
@@ -52,9 +52,25 @@ class PluginsSvpTelecharger extends PluginsActiver
             $actionneur->verrouiller();
             $actionneur->sauver_actions();
 
+            // SPIP normalizes authorization types twice in this path (_plugins -> plugins -> plugin).
+            // Register both forms so teleporter authorization is effectively granted.
             autoriser_exception('ajouter', '_plugins', '*');
+            autoriser_exception('ajouter', '_plugin', '*');
+            $errorCount = count($actionneur->err);
             while ($res = $actionneur->one_action()) {
-                $this->io->comment($res['n'] . ' action réalisée : ' . $res['todo']);
+                $lastDone = end($actionneur->done) ?: [];
+                reset($actionneur->done);
+
+                if (!empty($lastDone['done'])) {
+                    $this->io->comment($res['n'] . ' action réalisée : ' . $res['todo']);
+                    continue;
+                }
+
+                $this->io->error($res['n'] . ' action en échec : ' . $res['todo']);
+                foreach (array_slice($actionneur->err, $errorCount) as $error) {
+                    $this->io->error($error);
+                }
+                $errorCount = count($actionneur->err);
             }
 
             $actionneur->deverrouiller();

Comme indiqué ici Contribuer au développement de SPIP - SPIP :slight_smile:

Tu as une PR à faire : et l’interface de Gitlab doit pouvoir t’y aider, même possiblement te proposer le lien direct quand tu as fait ton git pull…

J’ai trouvé comment faire : Fix téléchargement d'un plugin via spip-cli (!91) · Requêtes de fusion · spip-contrib-outils / spip-cli · GitLab
C’est mon premier PR ^^
Est-ce correct ?

1 « J'aime »

Mince, j’aurais dû créer un ticket d’abord. Il me semble que mon PR corrige le ticket Commande plugins:svp:telecharger : échoue si le dossier plugins/auto n'existe pas (#27) · Issues · spip-contrib-outils / spip-cli · GitLab

EDIT = en fait non, je crée manuellement plugins/auto avant d’utiliser spip-cli