source: spip-zone/_outils_/spip-cli/trunk/spip-cli/CoreTelecharger.php @ 106997

Last change on this file since 106997 was 106997, checked in by rastapopoulos@…, 4 years ago

3.2 à télécharger

File size: 2.4 KB
Line 
1<?php
2
3use Symfony\Component\Console\Command\Command;
4use Symfony\Component\Console\Input\InputArgument;
5use Symfony\Component\Console\Input\InputInterface;
6use Symfony\Component\Console\Input\InputOption;
7use Symfony\Component\Console\Output\OutputInterface;
8
9class CoreTelecharger extends Command {
10        protected function configure() {
11                $this
12                        ->setName('core:telecharger')
13                        ->setDescription('Télécharger SPIP dans un dossier (par défaut, la dernière version stable)')
14                        ->addOption(
15                                'branche',
16                                'b',
17                                InputOption::VALUE_OPTIONAL,
18                                'Donner explicitement la version à télécharger.',
19                                '3.2' // Par défaut, la dernière version stable
20                        )
21                        ->setAliases(array(
22                                'dl' // abbréviation commune pour "download"
23                        ))
24                ;
25        }
26
27        protected function execute(InputInterface $input, OutputInterface $output) {
28                // On travaille dans le dossier courant
29                $dossier = getcwd();
30               
31                // Liste des branches acceptées
32                $branches_ok = array(
33                        '2.1' => 'svn://trac.rezo.net/spip/branches/spip-2.1',
34                        '3.0' => 'svn://trac.rezo.net/spip/branches/spip-3.0',
35                        '3.1' => 'svn://trac.rezo.net/spip/branches/spip-3.1',
36                        '3.2' => 'svn://trac.rezo.net/spip/branches/spip-3.2',
37                        'trunk' => 'svn://trac.rezo.net/spip/spip',
38                );
39                // Branche séléctionnée
40                $branche = $input->getOption('branche');
41               
42                // On vérifie qu'on est pas déjà dans une installation de SPIP !
43                if ($GLOBALS['spip_loaded']) {
44                        $output->writeln('<info>Vous êtes déjà dans une installation de SPIP '.$GLOBALS['spip_version_branche'].'.</info> <comment>Téléchargement annulé.</comment>');
45                }
46                // Sinon c'est bon on peut télécharger SPIP
47                else {
48                        // On vérifie que l'on connait la version
49                        if (!in_array($branche, array_keys($branches_ok))){
50                                $output->writeln(array(
51                                        "<error>La version \"$branche\" n'est pas prise en charge.</error>",
52                                        'Branches supportées : <info>'.join('</info>, <info>', array_keys($branches_ok)).'</info>'
53                                ));
54                        }
55                        // Si c'est bon, on teste si on peut utiliser "passthru"
56                        elseif (!function_exists('passthru')){
57                                $output->writeln("<error>Votre installation de PHP doit pouvoir exécuter des commandes externes avec la fonction passthru().</error>");
58                        }
59                        // Si c'est bon on continue
60                        else{
61                                $output->writeln("<info>C'est parti pour le téléchargement de la version $branche !</info>");
62                       
63                                // On lance la commande SVN dans le répertoire courant
64                                passthru('svn co '.$branches_ok[$branche].' .');
65                        }
66                }
67        }
68}
Note: See TracBrowser for help on using the repository browser.