You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
cy_altern e1e8f12afa suite correspondance préfixe / repo Git 12 months ago
bin Pouvoir aussi utiliser facilement spipmu sous Windows 2 years ago
src suite correspondance préfixe / repo Git 12 months ago
.gitattributes On sort le rsync des fichiers dans synchroBDD dans synchroFichiers 3 years ago
.gitignore Grands changements dans Spip-Cli (en cours) 4 years ago
README.md ajout du remplacement de préfixe pour les forges externes (propriété remplacements_prefixes de l'objet forge dans spip_depot_git.json) 2 years ago
composer.json On passe de Pimple à Simplex pour le conteneur. 4 years ago
composer.lock Mise à jour des librairies composer. 3 years ago
spip.php Grands changements dans Spip-Cli (en cours) 4 years ago
spip_completion.sh - Pouvoir remettre le chemin de travail à la racine du SPIP facilement 4 years ago

README.md

Outil spip-cli

spip-cli est un outil pour commander SPIP depuis la ligne de commandes.

Documentation

https://contrib.spip.net/SPIP-Cli

Utiliser spip-cli

Pour connaître les commandes disponibles, lancer spip dans un shell

$ spip

Ligne de commande pour SPIP version 0.2.3

Usage:
  [options] command [arguments]

Options:
  --help           -h Display this help message.
  --quiet          -q Do not output any message.
  --verbose        -v|vv|vvv Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
  --version        -V Display this application version.
  --ansi              Force ANSI output.
  --no-ansi           Disable ANSI output.
  --no-interaction -n Do not ask any interactive question.

Available commands:
  dl                 Télécharger SPIP dans un dossier (par défaut, la dernière version stable)
  help               Displays help for a command
  install            Installer la base de données et le premier utilisateur.
  installer          Installer la base de données et le premier utilisateur.
  list               Lists commands
cache
  cache:desactiver   Désactive le cache de spip pendant 24h.
  cache:reactiver    Réactive le cache de spip.
  cache:vider        Vider le cache.
core
  core:installer     Installer la base de données et le premier utilisateur.
  core:preparer      Préparer les fichiers pour installer SPIP correctement.
  core:telecharger   Télécharger SPIP dans un dossier (par défaut, la dernière version stable)
(etc.)

Dans la version 0.2.3, spip-cli permet :

  • de télécharger SPIP dans un dossier,
  • d'installer la base de données de SPIP et le premier utilisateur,
  • vider et activer/désactiver le cache.
  • utiliser les fonctions propre() et typo()

telecharger des plugins via git (dans les depots Git de git.spip.net, ou dans d'autres depots)

commande : spip plugins:git:telecharger 2 arguments possibles (pour l'instant);

  • une liste de préfix séparé par un espace
  • un url d'un site spip pour récupérer tous ses plugins

Configuration: le plugin recherche un fichier spip_depot_git.json dans son dossier ou dans un dossier parent. On peut y indiquer d'autres depots / forges ex :

{
    "forges": [
        {
            "forge": "gitlab",
            "version": "v4",
            "url": "https://git.mongitlab.fr/api/v4/projects?access_token=MON_ACCESS_TOKEN",
			"par_page": 100,
			"remplacements_prefixes": {
				"prefixe_truc": "nom_repo_truc",
				"prefix_machin": "nom_repo_machin"
			}
        }
    ]
}

Dans ce cas le plugin va chercher une fonction chercher_url_gitlab($prefix, $v, $json) appelée avec 3 arguments :

	/*
	 * recherche l'url d'un plugin à cloner
	 *
	 * @parma $prefix : le prefix du plugin que l'on cherche
	 * @param $v : le numéro de version de l'api
	 * @param $json: le json a parser
	 *
	 * @return l'url à cloner
	 */
	public function chercher_url_gitlab($prefix, $v, $json){

Pour l'instant, le plugin fournit pour l'instant que la fonction pour l'api de gitlab en v4

Fonctionnement :

  1. teste l'existence du plugin, dans ce cas, simple git pull
  2. sinon teste l'existence dans un dossier de cache (dossier : spip_depot_git, dossier present dans l'arborescence parente du site), dans ce cas, clone dans ce dossier puis copie dans le dossier plugins du site ou si le plugin est présent pull puis copie.

Pour l'instant, la copie est assumée, au depend de git-worktree

  1. si pas de dossier de cache : clone dans le dossier plugins du site

synchro SPIP

Synchroniser un spip distant sur un spip local, bdd / fichiers / modif des metas

ATTENTION, pour l'instant ne fonctionne que sur une bdd en mysql

3 actions possibles :

  • spip synchro:init creation d'un fichier json : synchroSPIP.json à la racine du SPIP, il restera un peu de configuration à faire.
  • spip synchro:bdd pour lancer la synchro de la bdd et la modif des metas
  • spip synchro:fichiers pour lancer la synchro des fichiers via rsync

spip synchro:bdd : Il y a 3 args facultatifs

  • -v : verbeux
  • -b ou --backup: forcer le backup local de la bdd
  • -r ou --rsync: lancer à la fin les commandes rsync du script synchro:fichiers

spip synchro:fichiers: Il y a 1 arg facultatif

  • -v : verbeux

Fichier de configuration synchroSPIP.json

  • Il y a 2 façons pour ouvrir une connexion ssh :
    • via : user / hostName / port ex : ssh toto@spip.net -p 1234, si chemin_cle est defini, on pourra choisir une cle ssh dans un dossier autre que .ssh
    • via: host (il faut l'avoir défini dans .ssh/config) ex: ssh mon_host_spip dans ce cas, pas besoin de renseigner les autres champs dans config_ssh
    • Il faut avoir une cle ssh
  • Configuration pour le rsync : Chaque ligne représente : chemin local => chemin distant:
    • le chemin local peut-être en relatif
    • le chemin distant doit etre en absolue et se terminer par '/'
  • Configuration pwd mysql distant: si dans le fichier de configuration, on indique pas le pwd mysql, il sera demandé en console

exemple :

"rsync": {
	"IMG": "chemin abs vers IMG/",
	"plugins": "chemin abs vers plugins/"
}