diff --git a/scripts/pgit.sh b/scripts/pgit.sh index 74b42012..4a8152fa 100644 --- a/scripts/pgit.sh +++ b/scripts/pgit.sh @@ -58,8 +58,9 @@ clone() local projects="$PGIT_CLONE_PROJECTS" [ "$login" ] || login=`whoami` [ "$fromuser" ] || fromuser=`whoami` + local git_srv_admin="$SSH git.jannet.de /opt/ytools/bin/git-srv-admin.sh" if [ -z "$projects" ]; then - projects=`$SSH git.jannet.de /opt/ytools/bin/git-srv-admin.sh -u $fromuser -j list-personal-projects` + projects=`$git_srv_admin -u $fromuser -j list-personal-projects` [ "$?" != 0 ] && exit 1 fi set -e @@ -69,9 +70,23 @@ clone() continue } marker "cloning $p" - git clone ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p - git -C $p submodule init || fatal git submodule init failed in `pwd` - git -C $p submodule update || fatal git submodule update failed in `pwd` + local pullurl=ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p + local pushurl=ssh://$login@git.jannet.de/srv/git/$login/proj/$p + if [ "$fromuser" = "$login" ]; then + git clone ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p + git -C $p submodule init || fatal git submodule init failed in `pwd` + git -C $p submodule update || fatal git submodule update failed in `pwd` + else + set -x + $git_srv_admin -u $login -j create-personal-project $p + git clone ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p + git -C $p remote rename origin $fromuser || fatal failed to rename remote in `pwd` + git -C $p remote set-url --push $fromuser no_push + git -C $p remote add origin $pushurl + git -C $p submodule init || fatal git submodule init failed in `pwd` + git -C $p submodule update || fatal git submodule update failed in `pwd` + set +x + fi done )}