+#!/bin/bash
+
+. ./.jprojects.sh || exit 255
+
+UNWANTED_NAME="stick"
+WANTED_NAME1="upstream"
+WANTED_NAME2="daedalus"
+
+GIT_USER="quix0r"
+GIT_SERVER="git.mxchange.org"
+GIT_PATH="/var/cache/git/repos"
+GIT_BRANCH="master"
+GIT_ORIGIN="origin"
+
+MEDIA_NAME="INTENSO"
+MEDIA_PATH="Java Project"
+MEDIA_BASE="/media"
+
+for project in ${LIST}; do
+ GIT_URL1="${GIT_USER}@${GIT_SERVER}:${GIT_PATH}/${project}.git"
+ GIT_URL2="${GIT_PATH}/${project}.git"
+ echo "$0: GIT_URL1='${GIT_URL1}',GIT_URL2='${GIT_URL2}'"
+
+ cd "${project}"
+
+ if [ "$1" = "l" ]
+ then
+ echo "$0: Listing remotes for '${project}' ..."
+ git remote -v
+ cd -
+ continue;
+ fi
+
+ REMOTES=`git remote | wc -l`
+ echo "$0: REMOTES='${REMOTES}'"
+
+ if [ "${REMOTES}" = "1" ]
+ then
+ echo "$0: Only one remote found for '${project}'"
+
+ REMOTE=`git remote`
+ REMOTE_PUSH=`git remote -v | grep "push"`
+ echo "$0: REMOTE='${REMOTE}',REMOTE_PUSH='${REMOTE_PUSH}'"
+
+ MEDIA=`echo "${REMOTE_PUSH}" | grep "${MEDIA_BASE}/"`
+ echo "$0: MEDIA='${MEDIA}'"
+
+ if [ -n "${MEDIA}" ]
+ then
+ echo "$0: Found ${MEDIA_BASE}/ remote for '${project}'."
+ if [ "${REMOTE}" = "${GIT_ORIGIN}" ]
+ then
+ echo "$0: Project '${project}' has already fixed '${GIT_ORIGIN}'."
+ else
+ echo "$0: Renaming '${REMOTE}' to '${GIT_ORIGIN}' ..."
+ git remote rename "${REMOTE}" "${GIT_ORIGIN}" || exit 255
+ fi
+ else
+ echo "$0: Not a media remote."
+ MXCHANGE_REMOTE=`echo "${REMOTE_PUSH}" | grep "${GIT_URL1}"`
+ echo "$0: MXCHANGE_REMOTE='${MXCHANGE_REMOTE}'"
+
+ if [ -n "${MXCHANGE_REMOTE}" ]
+ then
+ echo "$0: Found a '${GIT_SERVER}' remote."
+
+ if [ "${REMOTE}" != "${WANTED_NAME1}" ]
+ then
+ echo "$0: Project '${project}' has one correct '${WANTED_NAME1}'."
+ else
+ echo "$0: Renaming '${REMOTE}' to '${WANTED_NAME1}' ..."
+ git remote rename "${REMOTE}" "${WANTED_NAME1}" || exit 255
+ fi
+
+ echo "$0: Adding '${GIT_ORIGIN}' to '${project}' ..."
+ git remote add "${GIT_ORIGIN}" "${MEDIA_BASE}/${USER}/${MEDIA_NAME}/${MEDIA_PATH}/${project}.git" --track "${GIT_BRANCH}" || exit 255
+ else
+ echo "$0: Unknown remote '${REMOTE_PUSH}' found. Exiting ..."
+ exit 1
+ fi
+ fi
+ fi
+
+ UNWANTED_REMOTE=`git remote | grep "${UNWANTED_NAME}"`
+ echo "$0: UNWANTED_REMOTE='${UNWANTED_REMOTE}'"
+
+ if [ -n "${UNWANTED_REMOTE}" ]
+ then
+ echo "$0: Found remote '${UNWANTED_NAME1}' in '${project}'. Renaming '${GIT_ORIGIN}'->'${WANTED_NAME1}' and '${UNWANTED_NAME1}'->'${GIT_ORIGIN}' ..."
+
+ UPSTREAM_REMOTE=`git remote | grep "${WANTED_NAME1}"`
+ echo "$0: UPSTREAM_REMOTE='${UPSTREAM_REMOTE}'"
+
+ if [ -n "${UPSTREAM_REMOTE}" ]
+ then
+ echo "$0: Remotes '${UNWANTED_NAME1}' and '${WANTED_NAME1}' exist! Removing '${WANTED_NAME1}' ..."
+ git remote rm "${WANTED_NAME1}" || exit 255
+ fi
+
+ git remote rename "${GIT_ORIGIN}" "${WANTED_NAME1}" || exit 255
+ git remote rename "${UNWANTED_NAME1}" "${GIT_ORIGIN}" || exit 255
+ else
+ echo "$0: No unwanted '${UNWANTED_NAME1}' remote in '${project}' ..."
+ UPSTREAM_REMOTE1=`git remote | grep "${WANTED_NAME1}"`
+ UPSTREAM_REMOTE2=`git remote | grep "${WANTED_NAME2}"`
+ echo "$0: UPSTREAM_REMOTE1='${UPSTREAM_REMOTE1}',UPSTREAM_REMOTE2='${UPSTREAM_REMOTE2}'"
+
+ if [ -n "${UPSTREAM_REMOTE1}" ]
+ then
+ echo "$0: Remote '${WANTED_NAME1}' found in '${project}'."
+ else
+ echo "$0: No wanted '${WANTED_NAME1}' in '${project}'. Adding ..."
+ git remote add "${WANTED_NAME1}" "${GIT_URL1}" --track "${GIT_BRANCH}" || exit 255
+ fi
+
+ if [ -n "${UPSTREAM_REMOTE2}" ]
+ then
+ echo "$0: Remote '${WANTED_NAME2}' found in '${project}'."
+ else
+ echo "$0: No wanted '${WANTED_NAME2}' in '${project}'. Adding ..."
+ git remote add "${WANTED_NAME2}" "${GIT_URL2}" --track "${GIT_BRANCH}" || exit 255
+ fi
+ fi
+
+ cd -
+done