X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=fix-project-remotes.sh;h=b51bd975b15f76f28c56ee90130d0a6bbe3e6b4f;hb=a4fdf7e49e1a56fdd7a6083727813bd5cf2158e6;hp=ebfb1da20b618bc04b3637bd9e1e64eb233d7e5d;hpb=18031c260830134fa1e73795a1a02cd8ba1b7ddf;p=jprojects-scripts.git diff --git a/fix-project-remotes.sh b/fix-project-remotes.sh index ebfb1da..b51bd97 100755 --- a/fix-project-remotes.sh +++ b/fix-project-remotes.sh @@ -2,10 +2,12 @@ . ./.jprojects.sh || exit 255 -UNWANTED_NAME="stick" +UNWANTED_NAME1="stick" +UNWANTED_NAME2="jjobboards" WANTED_NAME1="upstream" WANTED_NAME2="daedalus" WANTED_NAME3="transport" +WANTED_NAME4="backup2" GIT_USER="quix0r" GIT_SERVER="git.mxchange.org" @@ -14,47 +16,73 @@ GIT_BRANCH="master" GIT_ORIGIN="origin" MEDIA_BASE="/media" -MEDIA_NAME1="INTENSO" +MEDIA_NAME1="Backup" MEDIA_NAME2="Transport" +MEDIA_NAME3="Backup" MEDIA_PATH="Java Project" for project in ${LIST}; do - echo "$0: project='${project}'" - SKIP_TEST="${project:0:9}" - - if [ "${SKIP_TEST}" = "jratecalc" ] + if [ "${project}" = "jprojects-scripts" ] + then + echo "$0: Skipping jprojects-scripts ..." + continue + elif [ ! -d "${JPROJECTS_HOME}/${project}" ] then - echo "$0: Not fixing URLs for jratecalc project '${project}'." + echo "$0: Project '${project}' does not exist." continue fi + echo "$0: project='${project}'" + cd "${JPROJECTS_HOME}/${project}" || exit 255 + GIT_URL1="${GIT_USER}@${GIT_SERVER}:${GIT_PATH}/${project}.git" GIT_URL2="${GIT_PATH}/${project}.git" GIT_URL3="${MEDIA_BASE}/${USER}/${MEDIA_NAME2}/${MEDIA_PATH}/${project}.git" - echo "$0: GIT_URL1='${GIT_URL1}',GIT_URL2='${GIT_URL2}',GIT_URL3='${GIT_URL3}'" - - cd "${project}" + GIT_URL4="file:///E:/Java%20Project/${project}.git" + GIT_URL5="E:/Java Project/${project}.git" + GIT_URL6="${MEDIA_BASE}/${USER}/${MEDIA_NAME1}/${MEDIA_PATH}/${project}.git" + GIT_URL7="${MEDIA_BASE}/${USER}/${MEDIA_NAME3}/${MEDIA_PATH}/${project}.git" + echo "$0: GIT_URL1='${GIT_URL1}'" + echo "$0: GIT_URL2='${GIT_URL2}'" + echo "$0: GIT_URL3='${GIT_URL3}'" + echo "$0: GIT_URL4='${GIT_URL4}'" + echo "$0: GIT_URL5='${GIT_URL5}'" + echo "$0: GIT_URL6='${GIT_URL6}'" + echo "$0: GIT_URL7='${GIT_URL7}'" if [ "$1" = "l" ] then echo "$0: Listing remotes for '${project}' ..." git remote -v - cd - - continue; + continue fi - REMOTES=`git remote | wc -l` + REMOTES=$(git remote | wc -l) echo "$0: REMOTES='${REMOTES}'" - if [ "${REMOTES}" = "1" ] + if [ "${REMOTES}" = "0" ] + then + if [ -n "${SHELL}" -a -f "/proc/version" ] + then + echo "$0: Found no repositories in '${project}'. Creating all (Linux) ..." + git remote add "${GIT_ORIGIN}" "${GIT_URL6}" --track "${GIT_BRANCH}" + git remote add "${WANTED_NAME1}" "${GIT_URL1}" + git remote add "${WANTED_NAME2}" "${GIT_URL2}" + git remote add "${WANTED_NAME3}" "${GIT_URL3}" + git remote add "${WANTED_NAME4}" "${GIT_URL4}" + else + echo "$0: Don't know how to create repositories, maybe unsupported." + exit 1 + fi + elif [ "${REMOTES}" = "1" ] then echo "$0: Only one remote found for '${project}'" - REMOTE=`git remote` - REMOTE_PUSH=`git remote -v | grep "push"` + REMOTE=$(git remote) + REMOTE_PUSH=$(git remote -v | grep "push") echo "$0: REMOTE='${REMOTE}',REMOTE_PUSH='${REMOTE_PUSH}'" - MEDIA1=`echo "${REMOTE_PUSH}" | grep "${MEDIA_BASE}/${USER}/${MEDIA_NAME1}/"` + MEDIA1=$(echo "${REMOTE_PUSH}" | grep "${MEDIA_BASE}/${USER}/${MEDIA_NAME1}/") echo "$0: MEDIA1='${MEDIA1}'" if [ -n "${MEDIA1}" ] @@ -69,14 +97,17 @@ for project in ${LIST}; do fi else echo "$0: Not a media remote." - MXCHANGE_REMOTE=`echo "${REMOTE_PUSH}" | grep "${GIT_URL1}"` - echo "$0: MXCHANGE_REMOTE='${MXCHANGE_REMOTE}'" + MXCHANGE_REMOTE=$(echo "${REMOTE_PUSH}" | grep "${GIT_URL1}") + LINUX_MEDIA_PATH_REMOTE=$(echo "${REMOTE_PUSH}" | grep "${GIT_URL3}") + WINDOWS_FILE_REMOTE=$(echo "${REMOTE_PUSH}" | grep "${GIT_URL4}") + WINDOWS_PATH_REMOTE=$(echo "${REMOTE_PUSH}" | grep "${GIT_URL5}") + echo "$0: MXCHANGE_REMOTE='${MXCHANGE_REMOTE}',WINDOWS_FILE_REMOTE='${WINDOWS_FILE_REMOTE}',WINDOWS_PATH_REMOTE='${WINDOWS_PATH_REMOTE}',LINUX_MEDIA_PATH_REMOTE='${LINUX_MEDIA_PATH_REMOTE}'" if [ -n "${MXCHANGE_REMOTE}" ] then echo "$0: Found a '${GIT_SERVER}' remote." - if [ "${REMOTE}" != "${WANTED_NAME1}" ] + if [ -n "${WANTED_NAME1}" -a "${REMOTE}" != "${WANTED_NAME1}" ] then echo "$0: Project '${project}' has one correct '${WANTED_NAME1}'." else @@ -86,6 +117,35 @@ for project in ${LIST}; do echo "$0: Adding '${GIT_ORIGIN}' to '${project}' ..." git remote add "${GIT_ORIGIN}" "${MEDIA_BASE}/${USER}/${MEDIA_NAME1}/${MEDIA_PATH}/${project}.git" --track "${GIT_BRANCH}" || exit 255 + elif [ -n "${WINDOWS_FILE_REMOTE}" -o -n "${WINDOWS_PATH_REMOTE}" ] + then + echo "$0: Found a Windows (USB stick) remote." + + if [ -n "${WANTED_NAME3}" -a "${REMOTE}" == "${WANTED_NAME3}" ] + then + echo "$0: Project '${project}' has one correct '${WANTED_NAME3}'." + else + echo "$0: Renaming '${REMOTE}' to '${WANTED_NAME3}' ..." + git remote rename "${REMOTE}" "${WANTED_NAME3}" || exit 255 + fi + + echo "$0: Adding '${GIT_ORIGIN}' to '${project}' ..." + git remote add "${GIT_ORIGIN}" "${GIT_URL1}" --track "${GIT_BRANCH}" || exit 255 + elif [ -n "${LINUX_MEDIA_PATH_REMOTE}" ] + then + echo "$0: Found a Linux (USB stick) remote." + + if [ -n "${GIT_ORIGIN}" -a "${REMOTE}" = "${GIT_ORIGIN}" ] + then + echo "$0: Need to fix remote repositories ..." + git remote rename origin transport || exit 255 + git remote add "${GIT_ORIGIN}" "${GIT_URL6}" --track "${GIT_BRANCH}" || exit 255 + git remote add "${WANTED_NAME1}" "${GIT_URL1}" --track "${GIT_BRANCH}" || exit 255 + git remote add "${WANTED_NAME2}" "${GIT_URL2}" --track "${GIT_BRANCH}" || exit 255 + else + echo "$0: Don't know how to fix '${REMOTE}' (${REMOTE_PUSH})." + exit 1 + fi else echo "$0: Unknown remote '${REMOTE_PUSH}' found. Exiting ..." exit 1 @@ -93,34 +153,35 @@ for project in ${LIST}; do fi fi - UNWANTED_REMOTE=`git remote | grep "${UNWANTED_NAME}"` + UNWANTED_REMOTE=$(git remote | grep "${UNWANTED_NAME1}") echo "$0: UNWANTED_REMOTE='${UNWANTED_REMOTE}'" if [ -n "${UNWANTED_REMOTE}" ] then - echo "$0: Found remote '${UNWANTED_NAME}' in '${project}'. Renaming '${GIT_ORIGIN}'->'${WANTED_NAME1}' and '${UNWANTED_NAME}'->'${GIT_ORIGIN}' ..." + 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}"` + UPSTREAM_REMOTE=$(git remote | grep "${WANTED_NAME1}") echo "$0: UPSTREAM_REMOTE='${UPSTREAM_REMOTE}'" if [ -n "${UPSTREAM_REMOTE}" ] then - echo "$0: Remotes '${UNWANTED_NAME}' and '${WANTED_NAME1}' exist! Removing '${WANTED_NAME1}' ..." + 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_NAME}" "${GIT_ORIGIN}" || exit 255 + git remote rename "${UNWANTED_NAME1}" "${GIT_ORIGIN}" || exit 255 else - echo "$0: No unwanted '${UNWANTED_NAME}' remote in '${project}' ..." - UPSTREAM_REMOTE1=`git remote | grep "${WANTED_NAME1}"` - UPSTREAM_REMOTE2=`git remote | grep "${WANTED_NAME2}"` - UPSTREAM_REMOTE3=`git remote | grep "${WANTED_NAME3}"` - echo "$0: UPSTREAM_REMOTE1='${UPSTREAM_REMOTE1}',UPSTREAM_REMOTE2='${UPSTREAM_REMOTE2}',UPSTREAM_REMOTE3='${UPSTREAM_REMOTE3}'" + echo "$0: No unwanted '${UNWANTED_NAME1}' remote in '${project}' ..." + UPSTREAM_REMOTE1=$(git remote | grep "${WANTED_NAME1}") + UPSTREAM_REMOTE2=$(git remote | grep "${WANTED_NAME2}") + UPSTREAM_REMOTE3=$(git remote | grep "${WANTED_NAME3}") + UPSTREAM_REMOTE4=$(git remote | grep "${WANTED_NAME4}") + echo "$0: UPSTREAM_REMOTE1='${UPSTREAM_REMOTE1}',UPSTREAM_REMOTE2='${UPSTREAM_REMOTE2}',UPSTREAM_REMOTE3='${UPSTREAM_REMOTE3},UPSTREAM_REMOTE4='${UPSTREAM_REMOTE4}'" if [ -n "${UPSTREAM_REMOTE1}" ] then - echo "$0: Remote '${WANTED_NAME1}' found in '${project}'." + echo "$0: Wanted remote '${WANTED_NAME1}' already 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 @@ -132,8 +193,67 @@ for project in ${LIST}; do elif [ ! -d "${GIT_URL2}" ] then echo "$0: Remote '${WANTED_NAME2}' cannot be created, path '${GIT_URL2}' missing." - exit 1 + elif [ -n "${WANTED_NAME2}" ] + then + echo "$0: No wanted '${WANTED_NAME2}' in '${project}'. Adding ..." + git remote add "${WANTED_NAME2}" "${GIT_URL2}" --track "${GIT_BRANCH}" || exit 255 + fi + + if [ -n "${UPSTREAM_REMOTE3}" ] + then + echo "$0: Remote '${WANTED_NAME3}' found in '${project}'." + elif [ ! -d "${GIT_URL3}" ] + then + echo "$0: Remote '${WANTED_NAME3}' cannot be created, path '${GIT_URL3}' missing." + else + echo "$0: No wanted '${WANTED_NAME3}' in '${project}'. Adding ..." + git remote add "${WANTED_NAME3}" "${GIT_URL3}" --track "${GIT_BRANCH}" || exit 255 + fi + + if [ -n "${UPSTREAM_REMOTE4}" ] + then + echo "$0: Remote '${WANTED_NAME4}' found in '${project}'." + elif [ ! -d "${GIT_URL4}" ] + then + echo "$0: Remote '${WANTED_NAME4}' cannot be created, path '${GIT_URL4}' missing." + else + echo "$0: No wanted '${WANTED_NAME4}' in '${project}'. Adding ..." + git remote add "${WANTED_NAME4}" "${GIT_URL4}" --track "${GIT_BRANCH}" || exit 255 + fi + fi + + UNWANTED_REMOTE=$(git remote | grep "${UNWANTED_NAME2}") + echo "$0: UNWANTED_REMOTE='${UNWANTED_REMOTE}'" + + if [ -n "${UNWANTED_REMOTE}" ] + then + echo "$0: Found remote '${UNWANTED_NAME2}' in '${project}'. Removing it..." + + git remote remove "${UNWANTED_REMOTE}" || exit 255 + else + echo "$0: No unwanted '${UNWANTED_NAME2}' remote in '${project}' ..." + UPSTREAM_REMOTE1=$(git remote | grep "${WANTED_NAME1}") + UPSTREAM_REMOTE2=$(git remote | grep "${WANTED_NAME2}") + UPSTREAM_REMOTE3=$(git remote | grep "${WANTED_NAME3}") + UPSTREAM_REMOTE4=$(git remote | grep "${WANTED_NAME4}") + echo "$0: UPSTREAM_REMOTE1='${UPSTREAM_REMOTE1}',UPSTREAM_REMOTE2='${UPSTREAM_REMOTE2}',UPSTREAM_REMOTE3='${UPSTREAM_REMOTE3},UPSTREAM_REMOTE4='${UPSTREAM_REMOTE4}'" + + if [ -n "${UPSTREAM_REMOTE1}" ] + then + echo "$0: Wanted remote '${WANTED_NAME1}' already 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}'." + elif [ ! -d "${GIT_URL2}" ] + then + echo "$0: Remote '${WANTED_NAME2}' cannot be created, path '${GIT_URL2}' missing." + elif [ -n "${WANTED_NAME2}" ] + then echo "$0: No wanted '${WANTED_NAME2}' in '${project}'. Adding ..." git remote add "${WANTED_NAME2}" "${GIT_URL2}" --track "${GIT_BRANCH}" || exit 255 fi @@ -144,12 +264,162 @@ for project in ${LIST}; do elif [ ! -d "${GIT_URL3}" ] then echo "$0: Remote '${WANTED_NAME3}' cannot be created, path '${GIT_URL3}' missing." - exit 1 else echo "$0: No wanted '${WANTED_NAME3}' in '${project}'. Adding ..." git remote add "${WANTED_NAME3}" "${GIT_URL3}" --track "${GIT_BRANCH}" || exit 255 fi + + if [ -n "${UPSTREAM_REMOTE4}" ] + then + echo "$0: Remote '${WANTED_NAME4}' found in '${project}'." + elif [ ! -d "${GIT_URL4}" ] + then + echo "$0: Remote '${WANTED_NAME4}' cannot be created, path '${GIT_URL4}' missing." + else + echo "$0: No wanted '${WANTED_NAME4}' in '${project}'. Adding ..." + git remote add "${WANTED_NAME4}" "${GIT_URL4}" --track "${GIT_BRANCH}" || exit 255 + fi fi - cd - + echo "$0: Setting upstream to '${GIT_ORIGIN}/${GIT_BRANCH}' ..." + git branch --set-upstream-to "${GIT_ORIGIN}/${GIT_BRANCH}" + + # Is not an application by default + IS_APP="" + + # Now "walk" through all base application names + for APP_NAME in ${BASE_APPLICATION_NAMES}; do + echo "$0: project='${project}',APP_NAME='${APP_NAME}'" + + # Is it part of the project's name? + PART=$(echo "${project}" | grep "${APP_NAME}") + + # Check it + if [ -z "${PART}" ] + then + # Skip this entire loop + continue + fi + + # Found one that maybe needs fixing + IS_APP="${APP_NAME}" + + # Skip further search + break + done + + echo "$0: IS_APP='${IS_APP}'" + + # Is the current project an application (or part of it)? + if [ -z "${IS_APP}" ] + then + # No, then skip it + echo "$0: Project '${project}' is no application." + continue + fi + + # Generate all sub-project names + EAR_APP_NAME="${IS_APP}" + CORE_APP_NAME="${IS_APP}-core" + EJB_APP_NAME="${IS_APP}-ejb" + LIB_APP_NAME="${IS_APP}-lib" + MAILER_EJB_APP_NAME="${IS_APP}-mailer-ejb" + MAILER_LIB_APP_NAME="${IS_APP}-mailer-lib" + SWING_APP_NAME="${IS_APP}-swing" + WAR_APP_NAME="${IS_APP}-war" + + # It is an application, then run through all projects again + for APP_NAME in ${BASE_APPLICATION_NAMES}; do + echo "$0: project='${project}',APP_NAME='${APP_NAME}'" + + # What project do we have? + if [ "${project}" = "${EAR_APP_NAME}" ] + then + # EAR (triangle symbol) project + PROJECT_APP_NAME="${APP_NAME}" + OWN_APP_NAME="${EAR_APP_NAME}" + elif [ "${project}" = "${CORE_APP_NAME}" ] + then + # Model library project + PROJECT_APP_NAME="${APP_NAME}-core" + OWN_APP_NAME="${CORE_APP_NAME}" + elif [ "${project}" = "${EJB_APP_NAME}" ] + then + # General EJB (bean symbol) project + PROJECT_APP_NAME="${APP_NAME}-ejb" + OWN_APP_NAME="${EJB_APP_NAME}" + elif [ "${project}" = "${LIB_APP_NAME}" ] + then + # General remote-interface project + PROJECT_APP_NAME="${APP_NAME}-lib" + OWN_APP_NAME="${LIB_APP_NAME}" + elif [ "${project}" = "${MAILER_EJB_APP_NAME}" ] + then + # Mailer EJB (bean symbol) project + PROJECT_APP_NAME="${APP_NAME}-mailer-ejb" + OWN_APP_NAME="${MAILER_EJB_APP_NAME}" + elif [ "${project}" = "${MAILER_LIB_APP_NAME}" ] + then + # Mailer remote-interface project + PROJECT_APP_NAME="${APP_NAME}-mailer-lib" + OWN_APP_NAME="${MAILER_LIB_APP_NAME}" + elif [ "${project}" = "${SWING_APP_NAME}" ] + then + # Swing project + PROJECT_APP_NAME="${APP_NAME}-swing" + OWN_APP_NAME="${SWING_APP_NAME}" + elif [ "${project}" = "${WAR_APP_NAME}" ] + then + # WAR (globe symbol) project + PROJECT_APP_NAME="${APP_NAME}-war" + OWN_APP_NAME="${WAR_APP_NAME}" + else + # Unknown, skip this + echo "$0: Project '${project}' is not supported. Please consider adding it." + break + fi + + # Generic ... + LOCAL_APP_PATH="${JPROJECTS_HOME}/${PROJECT_APP_NAME}" + + echo "$0: LOCAL_APP_PATH='${LOCAL_APP_PATH}',PROJECT_APP_NAME='${PROJECT_APP_NAME}'" + echo "$0: project='${project}',OWN_APP_NAME='${OWN_APP_NAME}'" + + # Is same project name? + if [ "${OWN_APP_NAME}" != "${project}" ] + then + echo "$0: Not the right project: '${project}'<>'${OWN_APP_NAME}', skipping ..." + continue + elif [ "${project}" = "${LOCAL_APP_PATH##*/}" ] + then + # Skip same project + echo "$0: Not local-tracking same project '${project}'='${LOCAL_APP_PATH##*/}', skipping ..." + continue; + elif [ ! -d "${LOCAL_APP_PATH}" ] + then + # Other application's name does not exist + echo "$0: Application '${APP_NAME}' not found, skipping ..." + continue; + fi + + # Local-tracking + LOCAL_TRACKING="${APP_NAME}-local" + echo "$0: LOCAL_TRACKING='${LOCAL_TRACKING}'" + + # Maybe a local-tracking needs to be setup? + LOCAL_TRACKING_SETUP=$(git remote | grep "${LOCAL_TRACKING}") + + if [ -n "${LOCAL_TRACKING_SETUP}" ] + then + echo "$0: Local-tracking from '${project}' to '${LOCAL_APP_PATH##*/}' is already setup." + continue + fi + + # Setup it + echo "$0: Setting up local-tracking (${LOCAL_TRACKING}) from '${project}' to '${LOCAL_APP_PATH##*/}' ..." + git remote add "${LOCAL_TRACKING}" "${LOCAL_APP_PATH}" || exit 255 + done done + +echo "$0: All done." +exit 0