+
+ # 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