From ae8cf44afdf97c5848aefeecc760c00c73f8c08c Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Sat, 18 Jan 2020 20:53:24 +0100 Subject: [PATCH] on peut passer une option --module=.. pour ne traiter qu'un ou plusieurs modules specifiques --- inc/salvatore.php | 20 ++++++++++++++++++++ spip-cli/SalvatoreEcrire.php | 14 ++++++++++++++ spip-cli/SalvatoreLire.php | 14 ++++++++++++++ spip-cli/SalvatoreTirer.php | 14 ++++++++++++++ 4 files changed, 62 insertions(+) diff --git a/inc/salvatore.php b/inc/salvatore.php index e623297..9052af8 100644 --- a/inc/salvatore.php +++ b/inc/salvatore.php @@ -192,6 +192,26 @@ function salvatore_charger_fichier_traductions($fichier_traductions = null){ return $liste_trad; } +/** + * Filtrer la liste complete pour ne garder que un ou plusieurs modules specifiques + * @param array $liste_trad + * @param string|array $modules + * @return array + */ +function salvatore_filtrer_liste_traductions($liste_trad, $modules) { + if (is_string($modules)) { + $modules = explode(',', $modules); + } + $modules = array_map('trim', $modules); + $liste_filtree = array(); + foreach ($liste_trad as $trad) { + if (in_array($trad['module'], $modules)) { + $liste_filtree[] = $trad; + } + } + return $liste_filtree; +} + /** * Extraire la lang d'un fichier de langue d'un module donne * @param string $module diff --git a/spip-cli/SalvatoreEcrire.php b/spip-cli/SalvatoreEcrire.php index 519889b..8a04c60 100644 --- a/spip-cli/SalvatoreEcrire.php +++ b/spip-cli/SalvatoreEcrire.php @@ -52,6 +52,13 @@ class SalvatoreEcrire extends Command { 'Chemin vers le fichier traductions.txt a utiliser [salvatore/traductions/traductions.txt]', null ) + ->addOption( + 'module', + null, + InputOption::VALUE_REQUIRED, + 'Un ou plusieurs modules a traiter (par defaut tous les modules du fichier de traduction seront traites)', + null + ) ->addOption( 'message', null, @@ -82,6 +89,13 @@ class SalvatoreEcrire extends Command { $n = count($liste_trad); $output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>"); + $modules = $input->getOption('module'); + if ($modules = trim($modules)) { + $liste_trad = salvatore_filtrer_liste_traductions($liste_trad, $modules); + $n = count($liste_trad); + $output->writeln("<info>$n modules à traiter : " . $modules . "</info>"); + } + $message = $input->getOption('message'); salvatore_ecrire($liste_trad, $message ? $message : ''); diff --git a/spip-cli/SalvatoreLire.php b/spip-cli/SalvatoreLire.php index 0c7f1fd..d363cef 100644 --- a/spip-cli/SalvatoreLire.php +++ b/spip-cli/SalvatoreLire.php @@ -52,6 +52,13 @@ class SalvatoreLire extends Command { 'Chemin vers le fichier traductions.txt a utiliser [salvatore/traductions/traductions.txt]', null ) + ->addOption( + 'module', + null, + InputOption::VALUE_REQUIRED, + 'Un ou plusieurs modules a traiter (par defaut tous les modules du fichier de traduction seront traites)', + null + ) ; } @@ -75,6 +82,13 @@ class SalvatoreLire extends Command { $n = count($liste_trad); $output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>"); + $modules = $input->getOption('module'); + if ($modules = trim($modules)) { + $liste_trad = salvatore_filtrer_liste_traductions($liste_trad, $modules); + $n = count($liste_trad); + $output->writeln("<info>$n modules à traiter : " . $modules . "</info>"); + } + salvatore_lire($liste_trad); } } diff --git a/spip-cli/SalvatoreTirer.php b/spip-cli/SalvatoreTirer.php index 5b9ff57..5a8176d 100644 --- a/spip-cli/SalvatoreTirer.php +++ b/spip-cli/SalvatoreTirer.php @@ -51,6 +51,13 @@ class SalvatoreTirer extends Command { 'Chemin vers le fichier traductions.txt a utiliser [salvatore/traductions/traductions.txt]', null ) + ->addOption( + 'module', + null, + InputOption::VALUE_REQUIRED, + 'Un ou plusieurs modules a traiter (par defaut tous les modules du fichier de traduction seront traites)', + null + ) ; } @@ -73,6 +80,13 @@ class SalvatoreTirer extends Command { $n = count($liste_trad); $output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>"); + $modules = $input->getOption('module'); + if ($modules = trim($modules)) { + $liste_trad = salvatore_filtrer_liste_traductions($liste_trad, $modules); + $n = count($liste_trad); + $output->writeln("<info>$n modules à traiter : " . $modules . "</info>"); + } + salvatore_tirer($liste_trad); } } -- GitLab