Valider 8ae30b70 rédigé par cy.altern's avatar cy.altern
Parcourir les fichiers

ajout du lancement sans liste de plugins pour mise à jour de tous les plugins actifs

parent 6eac755a
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+26 −16
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -48,11 +48,15 @@ class PluginsGitTelecharger extends PluginsLister
<info>spip plugins:git:telecharger facteur</info> : clone le plugin facteur si il n’est pas encore présent, le met à jour sinon.
<info>spip plugins:git:telecharger facteur,crayons,oembed</info> : clone ou met à jour les plugins facteur, crayons et oembed
<info>spip p:g:t https://mon-spip-modele.tld</info> : clone ou met à jour tous les plugins qui sont actifs sur le SPIP https://mon-spip-modele.tld
<info>spip plugins:git:telecharger la_liste.txt</info> : clone ou met à jour tous les plugins listés dans le fichier tmp/la_liste.txt
<info>spip plugins:git:telecharger facteur,crayons la_liste.txt</info> : combinaison de sources pour la liste des plugins
<info>spip p:g:t la_liste.txt</info> : clone ou met à jour tous les plugins listés dans le fichier la_liste.txt ou tmp/la_liste.txt
<info>spip p:g:t facteur,crayons la_liste.txt</info> : combinaison de sources pour la liste des plugins
<info>spip p:g:t</info> : lancement sans liste de plugins pour mise à jour de tous les plugins actifs


<comment>Détails du fonctionnement:</comment>
<info>Fichiers txt pour fournir une liste de plugins</info>
Le fichier doit contenir une liste de préfixe de plugins séparés par une virgule. Par défaut il peut être placé à la racine du SPIP ou dans le répertoire tmp/

<info>Répertoire de cache</info>
Cette commande utilise un répertoire de cache sur le serveur pour stocker les plugins clonés afin d’éviter les téléchargements systématiques depuis le repo Git. Au démarrage les plugins demandés sont clonés dans le cache puis copiés dans le SPIP. Lors de l’appel d’un plugin existant dans le cache (par ex pour un autre SPIP sur le même serveur), le cache est mis à jour (git pull) puis copié dans le SPIP.
Par défaut le cache est stocké dans un répertoire <info>spip_depot_git</info> qui est recherché en remontant l’arborescence depuis le répertoire du SPIP où est lancé la commande. La constante <info>_CHEMIN_CACHE_GIT</info> permet d’indiquer un autre répertoire (nom du dossier ou chemin absolu).
@@ -100,30 +104,36 @@ La constante <info>_CHEMIN_CONF_GIT</info> permet d’utiliser un autre fichier
		$this->conf = $this->getConfiguration($this->chemin_conf_git);

		/*
		 * récupérer un array avec les prefixes des plugins-dist
		 * récupérer un array avec les préfixes des plugins-dist
		 */ 
		$dists = $this->getPluginsActifs(['php'=>false, 'dist'=>true]);
		$this->plugins_dist = $this->arrayPlugins($dists, true);

		/*
		 * Récuperation des prefixes passé dans l'argument from
		 * Récuperation des préfixes passé dans l'argument from
		 * 		soit sous la forme de prefixes 
		 * 		soit via une url d'un site SPIP
		 * 		soit sous forme d'une liste dans un fichier .txt
		 * 
		 * Si from est vide c'est une mise à jour
		 * on récupère donc la liste des plugins actifs
		 */
		$this->plugins_a_telecharger = [];
		$this->plugins_a_telecharger_via_url = [];

		$from = $input->getArgument('from');
		if (count($from)) {
			foreach ($from as $quoi) {
				if (preg_match(',^https?://,', $quoi)) {
					$this->addPrefix($this->getPrefixesFromUrl($quoi));
				} elseif (strrpos($quoi, '.txt') === (strlen($quoi) - 4)) {
				$this->addPrefix($this->getPrefixesFromFile(_DIR_TMP.$quoi));
					$this->addPrefix($this->getPrefixesFromFile($quoi));
				} else {
					$this->addPrefix(explode(',',$quoi));
				}
			}
		} else {
			$this->addPrefix($this->arrayPlugins($this->getPluginsActifs(['php'=>false, 'dist'=>false, 'procure'=>false]), true));
		}

		/*
		 * On peut lancer le telechargement / copie des plugins
+1 −1

Fichier modifié.

Contient uniquement des modifications d'espaces.