Valider 24472903 rédigé par Eric Lupinacci's avatar Eric Lupinacci
Parcourir les fichiers

Adaptation du script suite à la modification des branches et tags de spip et des plugins-dist.

Le mode en ssh s'appelle maintenant ssh (git est conservé pour compatibilité).
Ajout de l'affichage de la version dans le help.
Correction du readme.
Néanmoins, tout ne fonctionne pas encore : le checkout d'une version x.y.z ne fonctionne pas alors que celle d'une branche x.y oui.
parent b46362c7
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+31 −28
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
#!/bin/bash

version_gitloader="1.0.0"
version="master"
dir_root="."
mode="http"
@@ -20,18 +21,20 @@ while getopts "v:d:m:" opt; do
			mode="${OPTARG}"
      ;;
    \?)
			echo "Version: $version_gitloader"
			echo "Usage: $0 [-v] [-d] [-m]"
			echo "-v : version de SPIP master ou x.y.z"
			echo "-v : version de SPIP master ou x.y"
			echo -e "\\t par défaut master"
			echo "-d : répertoire cible où télécharger SPIP et ses plugins"
			echo -e "\\t par défaut : répertoire courant"
			echo "-m : mode de téléchargement (git ou http)"
			echo "-m : mode de téléchargement, ssh ou http"
			echo -e "\\t par défaut http"
			exit;
      ;;
  esac
done


if [ ! -d "$dir_root" ]; then
	mkdir "$dir_root" || exit 1
fi
@@ -49,7 +52,6 @@ function clone_git() {
		git init "$repo_name"
		git -C "$repo_name" remote add origin "$repo_git" >/dev/null 2>&1
	fi
	git -C "$repo_name" config --add remote.origin.fetch "+refs/svn/map:refs/notes/commits" >/dev/null 2>&1
	if ! git -C "$repo_name" fetch --all -t >/dev/null 2>&1; then
		git -C "$repo_name" config --unset-all remote.origin.fetch "\\+refs\\/svn\\/map:refs\\/notes\\/commits"
		git -C "$repo_name" fetch --all -t >/dev/null 2>&1
@@ -68,32 +70,47 @@ function clone_git() {

# Import SPIP
if [[ "$mode" == "git" ]] || [[ "$mode" == "ssh" ]];then
	source_git="git@git.spip.net:SPIP/spip.git"
	source_git="git@git.spip.net:spip/spip.git"
fi
if [[ "$mode" == "http" ]];then
	source_git="https://git.spip.net/SPIP/spip.git"
fi
version_core="$version"
if [ "$version_core" != "master" ]; then
	version_core="spip-$version"
	source_git="https://git.spip.net/spip/spip.git"
fi

echo "Import SPIP core dans $dir_root à la version $version"
clone_git "$source_git" "$dir_root" "$version_core"
clone_git "$source_git" "$dir_root" "$version"

curl -s -X GET "https://git.spip.net/api/v1/orgs/spip/repos" -H  "accept: application/json" -o repos.json
last_index_repo=$(jq -r 'length - 1' repos.json)

if [ "$version" == "master" ]; then
  version_repo="master"
else
  compteur=$(echo "$version" | tr -cd '.' | wc -c | xargs)
  if [ "$compteur" -gt 1 ]; then
    version_repo="spip/$version"
  else
    version_repo="spip-$version"
  fi
fi

for i in $(seq 0 "$last_index_repo")
do
	if [[ "$mode" == "git" ]];then
	repo_name=$(jq -r ".[$i] .name" repos.json)
	case "${repo_name}" in
		spip|ecrire|prive|dev|themes)
			continue
			;;
		*)
			;;
	esac

	if [[ "$mode" == "git" || "$mode" == "ssh" ]];then
		source_git=$(jq -r ".[$i] .ssh_url" repos.json)
	fi
	if [[ "$mode" == "http" ]];then
		source_git=$(jq -r ".[$i] .html_url" repos.json)

	fi
	repo_name=$(jq -r ".[$i] .name" repos.json)

	repo_path="$dir_root/plugins-dist/$repo_name"

	#Une exception dans les plugins, le dépot dist n'en ai pas un
@@ -101,21 +118,7 @@ do
		repo_path="$dir_root/squelettes-$repo_name"
	fi

	case "${repo_name}" in
		spip|ecrire|prive)
			continue
			;;
		*)
			;;
	esac

	if [ "$version" == "master" ]; then
		version_repo="master"
	else
		version_repo="spip/$version"
	fi

	echo "Import de $repo_name à la version $version"
	echo "Import de $repo_name à la version $version_repo ("$source_git")"
	clone_git "$source_git" "$repo_path" "$version_repo"
done

+2 −12
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -11,8 +11,9 @@ Le script importe un environnement SPIP dans la destination (-d) à la version (

```
git_loader/git_loader.sh : option non permise -- h
    Version: x.y.z
    Usage: git_loader/git_loader.sh [-v] [-d] [-m]
        -v : version de SPIP master ou x.y.z
        -v : version de SPIP master ou x.y (branche) ou x.y.z (tag)
             par défaut master
        -d : répertoire cible où télécharger SPIP et ses plugins
             par défaut : répertoire courant
@@ -63,14 +64,3 @@ bash git_loader.sh -d /var/www/spip-prod/ -v 3.2.7
## Contribuer

Les correctifs sont les bienvenus.
Pour contribuer il est conseillé d'utiliser la version [git](https://git.spip.net/contrib/git_loader).

### Git ou SVN ?

Le code est disponible sur :
* [git](https://git.spip.net/contrib/git_loader)
* [svn](https://zone.spip.net/trac/spip-zone/browser/spip-zone/_outils_/git_loader).

Ces 2 versions sont synchronisées et par conséquent il est normalement possible de lire et écrire indifféremment sur les 2 dépots.
**Toutefois** c'est la version git qui sert de référence.
Si pour une raison quelconque la synchronisation est cassée, ce sera git qui aura le dernier mot.