Changeset 107675 in spip-zone
- Timestamp:
- Nov 20, 2017, 11:43:59 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_outils_/spip-cli/trunk/spip-cli/IntegraalGenerer.php
r93689 r107675 6 6 use Symfony\Component\Console\Input\InputOption; 7 7 use Symfony\Component\Console\Output\OutputInterface; 8 use Symfony\Component\Console\Question\ChoiceQuestion; 8 9 9 10 /** … … 47 48 'URL de l’auteur du projet' 48 49 ) 50 ->addOption( 51 'theme', 52 't', 53 InputOption::VALUE_REQUIRED, 54 'Version du thème à utiliser', 55 'gulp' 56 ) 49 57 ; 50 58 } … … 58 66 59 67 // On récupère les options 60 $chemin_integraal = $input->getOption('chemin_integraal');68 $chemin_integraal = rtrim($input->getOption('chemin_integraal'), '/') . '/'; 61 69 $auteur = $input->getOption('auteur'); 62 70 $url = $input->getOption('url'); 71 $version_theme = $input->getOption('theme'); 72 73 // [TODO] Si des arguments nécessaires manquent, on pose des questions 74 /* 75 if (!$version_theme) { 76 $helper = $this->getHelper('question'); 77 $question_theme = new ChoiceQuestion( 78 'Quelle version du thème utiliser ? (défaut : gulp)', 79 array('gulp', 'scssphp'), 80 0 81 ); 82 $version_theme = $helper->ask($input, $output, $question_theme); 83 $output->writeln('Vous avez choisi : '.$version_theme); 84 } 85 */ 63 86 64 87 // On se déplace dans le dossier des plugins si on est dans un SPIP … … 79 102 $output->writeln("<info>Téléchargement de l’échafaudage IntéGraal.</info>"); 80 103 81 // On lance la commande SVN dans le répertoire courant 82 passthru("svn export {$chemin_integraal} {$prefixe}", $erreur); 83 84 if ($erreur !== 0) { 85 $output->writeln("<error>Une erreur s’est produite durant le téléchargement.</error>"); 104 // On créé un nouveau répertoire pour y accueillir les 3 plugins d'Intégraal 105 if (!$dir_integraal = mkdir($prefixe, 0775)) { 106 $output->writeln("<error>Le répertoire « $prefixe » n’a pas pu être créé dans le dossier des plugins.</error>"); 86 107 } else { 87 passthru("chmod 775 -R {$prefixe}");88 108 89 109 // On se déplace dans le dossier du nouveau projet 90 110 chdir($prefixe); 91 111 92 // On renomme tous les fichiers avec "integraal" 93 passthru("find . | rename -v 's/integraal/{$prefixe}/g'", $erreur); 112 // Retrouver le chemin correspondant à la version du thème choisie 113 $chemins_theme = array( 114 'gulp' => 'theme/trunk', 115 'scssphp' => 'theme/branches/scssphp', 116 ); 117 $chemin_theme = $chemins_theme[$version_theme]; 94 118 95 // On affiche une erreur mais on continue quand même le renommage des contenus ensuite 96 if ($erreur !== 0) { 97 $output->writeln("<error>Une erreur s’est produite durant le renommage des fichiers.</error>"); 119 // On lance la commande SVN pour télécharger les 3 plugins 120 // dans le répertoire courant 121 $erreur_telecharger = false; 122 $sous_chemins_integraal = array( 123 'squelettes', 124 $chemin_theme, 125 'core' 126 ); 127 foreach($sous_chemins_integraal as $dossier){ 128 $chemin_sous_dossier = $chemin_integraal . $dossier; 129 passthru("svn export {$chemin_sous_dossier}", $erreur); 130 if ($erreur !== 0) { 131 $erreur_telecharger = true; 132 break; 133 } 98 134 } 99 135 100 // On remplace à l'intérieur des contenus 101 passthru("find . -type f -exec sed -i 's/integraal/{$prefixe}/g' {} \;", $erreur); 102 passthru("find . -type f -exec sed -i 's/IntéGraal/{$nom}/g' {} \;", $erreur); 103 104 // Si on demande à changer l'auteur 105 if ($auteur) { 106 passthru("find . -type f -exec sed -i 's/Les Développements Durables/{$auteur}/g' {} \;", $erreur); 136 if ($erreur_telecharger) { 137 $output->writeln("<error>Une erreur s’est produite durant le téléchargement.</error>"); 138 } else { 139 140 // Mettre les bonnes permissions 141 passthru("chmod 775 -R *"); 142 143 // On renomme le dossier du theme 144 $dossier_theme = ltrim(strrchr($chemin_theme, '/'), '/'); 145 passthru("mv $dossier_theme theme", $erreur); 146 if ($erreur){ 147 $output->writeln("<error>Le dossier du theme (${dossier_theme}) n’a pas pu être renommé en « theme »</error>"); 148 } 149 150 // On renomme tous les fichiers avec "integraal" 151 passthru("find . | rename -v 's/integraal/{$prefixe}/g'", $erreur); 152 153 // On affiche une erreur mais on continue quand même le renommage des contenus ensuite 154 if ($erreur !== 0) { 155 $output->writeln("<error>Une erreur s’est produite durant le renommage des fichiers.</error>"); 156 } 157 158 // On remplace à l'intérieur des contenus 159 passthru("find . -type f -exec sed -i 's/integraal/{$prefixe}/g' {} \;", $erreur); 160 passthru("find . -type f -exec sed -i 's/IntéGraal/{$nom}/g' {} \;", $erreur); 161 162 // Si on demande à changer l'auteur 163 if ($auteur) { 164 passthru("find . -type f -exec sed -i 's/Les Développements Durables/{$auteur}/g' {} \;", $erreur); 165 } 166 // Si on demande à changer l'url 167 if ($url) { 168 passthru("find . -type f -exec sed -i 's|http://www\.ldd\.fr|{$url}|g' {} \;", $erreur); 169 } 170 171 $output->writeln('<info>C’est fini ! Vous pouvez maintenant personnaliser les fichiers selon vos besoins.</info>'); 107 172 } 108 // Si on demande à changer l'auteur109 if ($url) {110 passthru("find . -type f -exec sed -i 's|http://www\.ldd\.fr|{$url}|g' {} \;", $erreur);111 }112 113 $output->writeln('<info>C’est fini ! Vous pouvez maintenant personnaliser les fichiers selon vos besoins.</info>');114 173 } 115 174 }
Note: See TracChangeset
for help on using the changeset viewer.