Changeset 85870 in spip-zone


Ignore:
Timestamp:
Nov 5, 2014, 11:23:22 PM (5 years ago)
Author:
bystrano@…
Message:

Si pas de plugins passés en argument, on demande + commentaires

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _outils_/spip-cli/trunk/spip-cli/PluginsDesactiver.php

    r85869 r85870  
    77use Symfony\Component\Console\Input\ArrayInput;
    88use Symfony\Component\Console\Output\OutputInterface;
     9use Symfony\Component\Console\Question\Question;
    910use Symfony\Component\Console\Question\ConfirmationQuestion;
    1011
     
    3839            $actifs = unserialize($GLOBALS['meta']['plugin']);
    3940
     41            /* Si on a choisi l'options --all, on prends tous les
     42               plugins qui ne sont pas dans plugins-dist */
    4043            if ($input->getOption('all')) {
    4144                $plugins = array_map('strtolower',array_keys($actifs));
     
    5861
    5962            if ( ! $plugins) {
    60                 $output->writeln('<comment>Vous n\'avez pas spécifié de plugin à désactiver</comment>');
    6163
    62                 $command = $this->getApplication()->find('help');
    63                 $arguments = array(
    64                     'command' => 'help',
    65                     'command_name' => 'plugins:desactiver',
    66                 );
    67                 $input = new ArrayInput($arguments);
    68                 $command->run($input, $output);
    69                 return;
    70             } else {
     64                /* Si pas de plugin(s) spécifiés, on demande */
    7165                $helper = $this->getHelper('question');
    72                 $confirmer = new ConfirmationQuestion("Vous allez désactiver les plugins suivants : " . implode(', ', $plugins) . ". \n \nÊtes-vous certain-e de vouloir continuer ? ", false);
     66                $question = new Question("Quel plugin faut-il désactiver ?\n", 'help');
     67                $question->setAutoCompleterValues(array_map('strtolower', array_keys($actifs)));
    7368
    74                 if ( ! $helper->ask($input, $output, $confirmer)) return;
     69                $reponse = trim($helper->ask($input, $output, $question));
     70                /* Si même après avoir demandé, l'utilisateur n'a pas
     71                   donné de plugin à désactiver, on affiche l'aide. */
     72                if ($reponse == 'help') {
     73                    $command = $this->getApplication()->find('help');
     74                    $arguments = array(
     75                        'command' => 'help',
     76                        'command_name' => 'plugins:desactiver',
     77                    );
     78                    $input = new ArrayInput($arguments);
     79                    $command->run($input, $output);
     80                    return;
     81                }
     82
     83                $plugins = explode(' ', $reponse);
    7584            }
    7685
     86            /* On liste le(s) plugin(s) qui seront désactivés et on
     87               demande confirmation. */
     88            $helper = $this->getHelper('question');
     89            $confirmer = new ConfirmationQuestion("Vous allez désactiver les plugins suivants : " . implode(', ', $plugins) . ".\nÊtes-vous certain-e de vouloir continuer ? ", false);
     90
     91            if ( ! $helper->ask($input, $output, $confirmer)) return;
     92
     93            /* Et enfin, on désactive le(s) plugin(s) */
    7794            $dir_uns = array();
    7895            foreach ($plugins as $prefixe) {
     
    93110
    94111            chdir($cwd);
     112
    95113        } else {
    96114
Note: See TracChangeset for help on using the changeset viewer.