technova69/spip-cli-custom | 10 commits
Par gilles, le 21 août 2026 à 12h00min :
fix(plugins:svp:telecharger): sélection du plugin, autorisation et remontée des erreurs
Trois corrections dans spip plugins:svp:telecharger, indépendantes mais
toutes nécessaires pour que la commande télécharge réellement un plugin.
-
Le plugin n’était jamais trouvé dans le dépôt.
La condition SQL comparaitUPPER(pl.prefixe)àLOWER("PREFIXE"):
les deux termes ne peuvent jamais être égaux pour un préfixe non vide, la
commande répondait donc systématiquement « Le plugin xxx n’est pas
référencé ». On compare désormaisUPPER(pl.prefixe)àUPPER("prefixe"). -
L’exception d’autorisation n’était pas prise en compte.
autoriser()normalise le type « _plugins » en « plugins »
(autoriser_type()retire l’underscore), puis transmet ce type déjà
normalisé àautoriser_exception(), qui le normalise une seconde fois :
« plugins » ne commençant plus par un underscore, il passe cette fois par
objet_type()et devient « plugin » au singulier.
La vérification portait donc sur la clé « plugin » alors que l’exception
n’était enregistrée que sous « plugins », etaction/teleporter.php
refusait le téléchargement. Les deux formes sont maintenant déclarées :
autoriser_dist()teste d’abord la présence de la clé « plugins » dans
$GLOBALS['autoriser_exception'], puis délègue la vérification effective à
autoriser_exception(), qui, elle, lit la clé « plugin ».
Vérifié sur SPIP 4.4.14 : aucune des deux déclarations prise isolément ne
suffit. -
La commande annonçait une réussite même en cas d’échec.
one_action()renvoie la description de l’action avant son exécution ;
son résultat est placé pardo_action()dans la dernière entrée de
$actionneur->done. On teste désormais ce résultat, et on affiche les
messages empilés dans$actionneur->errlorsque l’action a échoué.
Testé avec SPIP 4.4.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Modifié
src/Command/PluginsSvpTelecharger.php
==============================
Par nicod_, le 17 août 2026 à 09h42min :
fix(synchro:bdd): pas de métacaractère shell dans la partie distante
Sous Windows php passe par cmd.exe, qui ignore les guillemets simples et
interprète lui-même && et | : ils étaient interprétés en local au lieu
d’atteindre le serveur.
On abandonne aussi gzip/gunzip pour utiliser le paramètre -C de ssh.
Modifié
README.md
src/Command/SynchroBdd.php
==============================
Par nicod_, le 17 août 2026 à 09h42min :
doc: corrections mineures
Modifié
README.md
Détails : doc: corrections mineures (22140e12) · Validations · Gilles Vincent / spip-cli-custom · GitLab
==============================
Par nicod_, le 17 août 2026 à 09h42min :
style(synchro:bdd): aérer la sortie verbeuse (lisibilité)
Modifié
src/Command/SynchroBdd.php
==============================
Par nicod_, le 17 août 2026 à 09h42min :
style(synchro:bdd): rendre la sortie de la commande lisible
Messages sur une ligne via les helpers check/fail/care de SpipCliStyle au lieu
des blocs Symfony, et lignes vides autour des passthru pour isoler ce que mysql
écrit sur stderr.
Le dump des metas devient arborescent : indentation par profondeur, clés réelles
des sous-tableaux là où un compteur les numérotait, nœuds entre crochets pour les
distinguer des feuilles, séparateur unique porté par la constante SEPARATEUR.
Les valeurs non textuelles sont explicitées, un false ne s’affiche plus comme
une chaîne vide.
Le niveau de compression était annoncé « gzip -1 », lisible comme une négation.
Modifié
src/Command/SynchroBdd.php
==============================
Par nicod_, le 17 août 2026 à 09h42min :
feat(synchro:bdd): demander le mot de passe mysql distant à l’invite
Une invite avec saisie masquée quand config_mysql_serveur.pwd est vide, réutilisée pour le SHOW TABLES et les dumps : plus besoin d’écrire le mot de passe de production en dur dans le json.
Le mot de passe est également masqué dans la sortie (commandes affichées).
Modifié
README.md
src/Command/SynchroBdd.php
==============================
Par nicod_, le 17 août 2026 à 09h42min :
fix(synchro:bdd): ajouter --no-tablespaces aux mysqldump
Sans le privilège PROCESS, qu’un compte applicatif a rarement, mysqldump pollue la sortie avec des warnings en interrogeant les tablespaces généraux, qui ne sont pas concernés par un dump.
Modifié
src/Command/SynchroBdd.php
==============================
Par nicod_, le 17 août 2026 à 09h42min :
feat(synchro:bdd): compresser le flux de synchro
gzip côté distant, gunzip côté local.
Activable par la clé compression du json (true|false) ou par l’option -c (–compress)
Modifié
README.md
src/Command/SynchroBdd.php
src/Command/SynchroInit.php
==============================
Par nicod_, le 17 août 2026 à 09h42min :
feat(synchro:bdd): option pour ne pas rapatrier les données de certaines tables
Section dump du json : tables_sans_donnees (recréées vides en local) et
tables_ignorees (laissées intactes), jokers * et ? admis
Option -t (–tout) pour rapatrier quand même la base complète.
Modifié
README.md
src/Command/SynchroBdd.php
src/Command/SynchroInit.php
==============================
Par Cerdic, le 12 août 2026 à 10h51min :
fix: si pas de meta version_installee déclencher un upgrade de base + lancer un sql:repair après pour être certain que la base est bien réparée
Modifié
src/Command/CoreMajBdd.php