@ -1,5 +1,6 @@
#!/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