3 . ./.jprojects.sh || exit 255
6 UNWANTED_NAME2="jtrainings"
7 WANTED_NAME1="upstream"
8 WANTED_NAME2="daedalus"
9 WANTED_NAME3="transport"
10 WANTED_NAME4="backup2"
13 GIT_SERVER="git.mxchange.org"
14 GIT_PATH="/var/cache/git/repos"
20 MEDIA_NAME2="Transport"
22 MEDIA_PATH="Java Project"
24 for project in ${LIST}; do
25 if [ "${project}" = "jprojects-scripts" ]
27 echo "$0: Skipping jprojects-scripts ..."
29 elif [ ! -d "${JPROJECTS_HOME}/${project}" ]
31 echo "$0: Project '${project}' does not exist."
35 echo "$0: project='${project}'"
36 cd "${JPROJECTS_HOME}/${project}" || exit 255
38 GIT_URL1="${GIT_USER}@${GIT_SERVER}:${GIT_PATH}/${project}.git"
39 GIT_URL2="${GIT_PATH}/${project}.git"
40 GIT_URL3="${MEDIA_BASE}/${USER}/${MEDIA_NAME2}/${MEDIA_PATH}/${project}.git"
41 GIT_URL4="file:///E:/Java%20Project/${project}.git"
42 GIT_URL5="E:/Java Project/${project}.git"
43 GIT_URL6="${MEDIA_BASE}/${USER}/${MEDIA_NAME1}/${MEDIA_PATH}/${project}.git"
44 GIT_URL7="${MEDIA_BASE}/${USER}/${MEDIA_NAME3}/${MEDIA_PATH}/${project}.git"
45 echo "$0: GIT_URL1='${GIT_URL1}'"
46 echo "$0: GIT_URL2='${GIT_URL2}'"
47 echo "$0: GIT_URL3='${GIT_URL3}'"
48 echo "$0: GIT_URL4='${GIT_URL4}'"
49 echo "$0: GIT_URL5='${GIT_URL5}'"
50 echo "$0: GIT_URL6='${GIT_URL6}'"
51 echo "$0: GIT_URL7='${GIT_URL7}'"
55 echo "$0: Listing remotes for '${project}' ..."
60 REMOTES=$(git remote | wc -l)
61 echo "$0: REMOTES='${REMOTES}'"
63 if [ "${REMOTES}" = "0" ]
65 if [ -n "${SHELL}" -a -f "/proc/version" ]
67 echo "$0: Found no repositories in '${project}'. Creating all (Linux) ..."
68 git remote add "${GIT_ORIGIN}" "${GIT_URL6}" --track "${GIT_BRANCH}"
69 git remote add "${WANTED_NAME1}" "${GIT_URL1}"
70 git remote add "${WANTED_NAME2}" "${GIT_URL2}"
71 git remote add "${WANTED_NAME3}" "${GIT_URL3}"
72 git remote add "${WANTED_NAME4}" "${GIT_URL4}"
74 echo "$0: Don't know how to create repositories, maybe unsupported."
77 elif [ "${REMOTES}" = "1" ]
79 echo "$0: Only one remote found for '${project}'"
82 REMOTE_PUSH=$(git remote -v | grep "push")
83 echo "$0: REMOTE='${REMOTE}',REMOTE_PUSH='${REMOTE_PUSH}'"
85 MEDIA1=$(echo "${REMOTE_PUSH}" | grep "${MEDIA_BASE}/${USER}/${MEDIA_NAME1}/")
86 echo "$0: MEDIA1='${MEDIA1}'"
90 echo "$0: Found '${MEDIA_BASE}/${USER}/${MEDIA_NAME1}' remote for '${project}'."
91 if [ "${REMOTE}" = "${GIT_ORIGIN}" ]
93 echo "$0: Project '${project}' has already fixed '${GIT_ORIGIN}'."
95 echo "$0: Renaming '${REMOTE}' to '${GIT_ORIGIN}' ..."
96 git remote rename "${REMOTE}" "${GIT_ORIGIN}" || exit 255
99 echo "$0: Not a media remote."
100 MXCHANGE_REMOTE=$(echo "${REMOTE_PUSH}" | grep "${GIT_URL1}")
101 LINUX_MEDIA_PATH_REMOTE=$(echo "${REMOTE_PUSH}" | grep "${GIT_URL3}")
102 WINDOWS_FILE_REMOTE=$(echo "${REMOTE_PUSH}" | grep "${GIT_URL4}")
103 WINDOWS_PATH_REMOTE=$(echo "${REMOTE_PUSH}" | grep "${GIT_URL5}")
104 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}'"
106 if [ -n "${MXCHANGE_REMOTE}" ]
108 echo "$0: Found a '${GIT_SERVER}' remote."
110 if [ -n "${WANTED_NAME1}" -a "${REMOTE}" != "${WANTED_NAME1}" ]
112 echo "$0: Project '${project}' has one correct '${WANTED_NAME1}'."
114 echo "$0: Renaming '${REMOTE}' to '${WANTED_NAME1}' ..."
115 git remote rename "${REMOTE}" "${WANTED_NAME1}" || exit 255
118 echo "$0: Adding '${GIT_ORIGIN}' to '${project}' ..."
119 git remote add "${GIT_ORIGIN}" "${MEDIA_BASE}/${USER}/${MEDIA_NAME1}/${MEDIA_PATH}/${project}.git" --track "${GIT_BRANCH}" || exit 255
120 elif [ -n "${WINDOWS_FILE_REMOTE}" -o -n "${WINDOWS_PATH_REMOTE}" ]
122 echo "$0: Found a Windows (USB stick) remote."
124 if [ -n "${WANTED_NAME3}" -a "${REMOTE}" == "${WANTED_NAME3}" ]
126 echo "$0: Project '${project}' has one correct '${WANTED_NAME3}'."
128 echo "$0: Renaming '${REMOTE}' to '${WANTED_NAME3}' ..."
129 git remote rename "${REMOTE}" "${WANTED_NAME3}" || exit 255
132 echo "$0: Adding '${GIT_ORIGIN}' to '${project}' ..."
133 git remote add "${GIT_ORIGIN}" "${GIT_URL1}" --track "${GIT_BRANCH}" || exit 255
134 elif [ -n "${LINUX_MEDIA_PATH_REMOTE}" ]
136 echo "$0: Found a Linux (USB stick) remote."
138 if [ -n "${GIT_ORIGIN}" -a "${REMOTE}" = "${GIT_ORIGIN}" ]
140 echo "$0: Need to fix remote repositories ..."
141 git remote rename origin transport || exit 255
142 git remote add "${GIT_ORIGIN}" "${GIT_URL6}" --track "${GIT_BRANCH}" || exit 255
143 git remote add "${WANTED_NAME1}" "${GIT_URL1}" --track "${GIT_BRANCH}" || exit 255
144 git remote add "${WANTED_NAME2}" "${GIT_URL2}" --track "${GIT_BRANCH}" || exit 255
146 echo "$0: Don't know how to fix '${REMOTE}' (${REMOTE_PUSH})."
150 echo "$0: Unknown remote '${REMOTE_PUSH}' found. Exiting ..."
156 UNWANTED_REMOTE=$(git remote | grep "${UNWANTED_NAME1}")
157 echo "$0: UNWANTED_REMOTE='${UNWANTED_REMOTE}'"
159 if [ -n "${UNWANTED_REMOTE}" ]
161 echo "$0: Found remote '${UNWANTED_NAME1}' in '${project}'. Renaming '${GIT_ORIGIN}'->'${WANTED_NAME1}' and '${UNWANTED_NAME1}'->'${GIT_ORIGIN}' ..."
163 UPSTREAM_REMOTE=$(git remote | grep "${WANTED_NAME1}")
164 echo "$0: UPSTREAM_REMOTE='${UPSTREAM_REMOTE}'"
166 if [ -n "${UPSTREAM_REMOTE}" ]
168 echo "$0: Remotes '${UNWANTED_NAME1}' and '${WANTED_NAME1}' exist! Removing '${WANTED_NAME1}' ..."
169 git remote rm "${WANTED_NAME1}" || exit 255
172 git remote rename "${GIT_ORIGIN}" "${WANTED_NAME1}" || exit 255
173 git remote rename "${UNWANTED_NAME1}" "${GIT_ORIGIN}" || exit 255
175 echo "$0: No unwanted '${UNWANTED_NAME1}' remote in '${project}' ..."
176 UPSTREAM_REMOTE1=$(git remote | grep "${WANTED_NAME1}")
177 UPSTREAM_REMOTE2=$(git remote | grep "${WANTED_NAME2}")
178 UPSTREAM_REMOTE3=$(git remote | grep "${WANTED_NAME3}")
179 UPSTREAM_REMOTE4=$(git remote | grep "${WANTED_NAME4}")
180 echo "$0: UPSTREAM_REMOTE1='${UPSTREAM_REMOTE1}',UPSTREAM_REMOTE2='${UPSTREAM_REMOTE2}',UPSTREAM_REMOTE3='${UPSTREAM_REMOTE3},UPSTREAM_REMOTE4='${UPSTREAM_REMOTE4}'"
182 if [ -n "${UPSTREAM_REMOTE1}" ]
184 echo "$0: Wanted remote '${WANTED_NAME1}' already found in '${project}'."
186 echo "$0: No wanted '${WANTED_NAME1}' in '${project}'. Adding ..."
187 git remote add "${WANTED_NAME1}" "${GIT_URL1}" --track "${GIT_BRANCH}" || exit 255
190 if [ -n "${UPSTREAM_REMOTE2}" ]
192 echo "$0: Remote '${WANTED_NAME2}' found in '${project}'."
193 elif [ ! -d "${GIT_URL2}" ]
195 echo "$0: Remote '${WANTED_NAME2}' cannot be created, path '${GIT_URL2}' missing."
196 elif [ -n "${WANTED_NAME2}" ]
198 echo "$0: No wanted '${WANTED_NAME2}' in '${project}'. Adding ..."
199 git remote add "${WANTED_NAME2}" "${GIT_URL2}" --track "${GIT_BRANCH}" || exit 255
202 if [ -n "${UPSTREAM_REMOTE3}" ]
204 echo "$0: Remote '${WANTED_NAME3}' found in '${project}'."
205 elif [ ! -d "${GIT_URL3}" ]
207 echo "$0: Remote '${WANTED_NAME3}' cannot be created, path '${GIT_URL3}' missing."
209 echo "$0: No wanted '${WANTED_NAME3}' in '${project}'. Adding ..."
210 git remote add "${WANTED_NAME3}" "${GIT_URL3}" --track "${GIT_BRANCH}" || exit 255
213 if [ -n "${UPSTREAM_REMOTE4}" ]
215 echo "$0: Remote '${WANTED_NAME4}' found in '${project}'."
216 elif [ ! -d "${GIT_URL4}" ]
218 echo "$0: Remote '${WANTED_NAME4}' cannot be created, path '${GIT_URL4}' missing."
220 echo "$0: No wanted '${WANTED_NAME4}' in '${project}'. Adding ..."
221 git remote add "${WANTED_NAME4}" "${GIT_URL4}" --track "${GIT_BRANCH}" || exit 255
225 UNWANTED_REMOTE=$(git remote | grep "${UNWANTED_NAME2}")
226 echo "$0: UNWANTED_REMOTE='${UNWANTED_REMOTE}'"
228 if [ -n "${UNWANTED_REMOTE}" ]
230 echo "$0: Found remote '${UNWANTED_NAME2}' in '${project}'. Renaming '${GIT_ORIGIN}'->'${WANTED_NAME1}' and '${UNWANTED_NAME2}'->'${GIT_ORIGIN}' ..."
232 UPSTREAM_REMOTE=$(git remote | grep "${WANTED_NAME1}")
233 echo "$0: UPSTREAM_REMOTE='${UPSTREAM_REMOTE}'"
235 if [ -n "${UPSTREAM_REMOTE}" ]
237 echo "$0: Remotes '${UNWANTED_NAME2}' and '${WANTED_NAME1}' exist! Removing '${WANTED_NAME1}' ..."
238 git remote rm "${WANTED_NAME1}" || exit 255
241 git remote rename "${GIT_ORIGIN}" "${WANTED_NAME1}" || exit 255
242 git remote rename "${UNWANTED_NAME2}" "${GIT_ORIGIN}" || exit 255
244 echo "$0: No unwanted '${UNWANTED_NAME2}' remote in '${project}' ..."
245 UPSTREAM_REMOTE1=$(git remote | grep "${WANTED_NAME1}")
246 UPSTREAM_REMOTE2=$(git remote | grep "${WANTED_NAME2}")
247 UPSTREAM_REMOTE3=$(git remote | grep "${WANTED_NAME3}")
248 UPSTREAM_REMOTE4=$(git remote | grep "${WANTED_NAME4}")
249 echo "$0: UPSTREAM_REMOTE1='${UPSTREAM_REMOTE1}',UPSTREAM_REMOTE2='${UPSTREAM_REMOTE2}',UPSTREAM_REMOTE3='${UPSTREAM_REMOTE3},UPSTREAM_REMOTE4='${UPSTREAM_REMOTE4}'"
251 if [ -n "${UPSTREAM_REMOTE1}" ]
253 echo "$0: Wanted remote '${WANTED_NAME1}' already found in '${project}'."
255 echo "$0: No wanted '${WANTED_NAME1}' in '${project}'. Adding ..."
256 git remote add "${WANTED_NAME1}" "${GIT_URL1}" --track "${GIT_BRANCH}" || exit 255
259 if [ -n "${UPSTREAM_REMOTE2}" ]
261 echo "$0: Remote '${WANTED_NAME2}' found in '${project}'."
262 elif [ ! -d "${GIT_URL2}" ]
264 echo "$0: Remote '${WANTED_NAME2}' cannot be created, path '${GIT_URL2}' missing."
265 elif [ -n "${WANTED_NAME2}" ]
267 echo "$0: No wanted '${WANTED_NAME2}' in '${project}'. Adding ..."
268 git remote add "${WANTED_NAME2}" "${GIT_URL2}" --track "${GIT_BRANCH}" || exit 255
271 if [ -n "${UPSTREAM_REMOTE3}" ]
273 echo "$0: Remote '${WANTED_NAME3}' found in '${project}'."
274 elif [ ! -d "${GIT_URL3}" ]
276 echo "$0: Remote '${WANTED_NAME3}' cannot be created, path '${GIT_URL3}' missing."
278 echo "$0: No wanted '${WANTED_NAME3}' in '${project}'. Adding ..."
279 git remote add "${WANTED_NAME3}" "${GIT_URL3}" --track "${GIT_BRANCH}" || exit 255
282 if [ -n "${UPSTREAM_REMOTE4}" ]
284 echo "$0: Remote '${WANTED_NAME4}' found in '${project}'."
285 elif [ ! -d "${GIT_URL4}" ]
287 echo "$0: Remote '${WANTED_NAME4}' cannot be created, path '${GIT_URL4}' missing."
289 echo "$0: No wanted '${WANTED_NAME4}' in '${project}'. Adding ..."
290 git remote add "${WANTED_NAME4}" "${GIT_URL4}" --track "${GIT_BRANCH}" || exit 255
294 echo "$0: Setting upstream to '${GIT_ORIGIN}/${GIT_BRANCH}' ..."
295 git branch --set-upstream-to "${GIT_ORIGIN}/${GIT_BRANCH}"
297 # Is not an application by default
300 # Now "walk" through all base application names
301 for APP_NAME in ${BASE_APPLICATION_NAMES}; do
302 echo "$0: project='${project}',APP_NAME='${APP_NAME}'"
304 # Is it part of the project's name?
305 PART=$(echo "${project}" | grep "${APP_NAME}")
310 # Skip this entire loop
314 # Found one that maybe needs fixing
317 # Skip further search
321 echo "$0: IS_APP='${IS_APP}'"
323 # Is the current project an application (or part of it)?
324 if [ -z "${IS_APP}" ]
327 echo "$0: Project '${project}' is no application."
331 # Generate all sub-project names
332 EAR_APP_NAME="${IS_APP}"
333 CORE_APP_NAME="${IS_APP}-core"
334 EJB_APP_NAME="${IS_APP}-ejb"
335 LIB_APP_NAME="${IS_APP}-lib"
336 MAILER_EJB_APP_NAME="${IS_APP}-mailer-ejb"
337 MAILER_LIB_APP_NAME="${IS_APP}-mailer-lib"
338 SWING_APP_NAME="${IS_APP}-swing"
339 WAR_APP_NAME="${IS_APP}-war"
341 # It is an application, then run through all projects again
342 for APP_NAME in ${BASE_APPLICATION_NAMES}; do
343 echo "$0: project='${project}',APP_NAME='${APP_NAME}'"
345 # What project do we have?
346 if [ "${project}" = "${EAR_APP_NAME}" ]
348 # EAR (triangle symbol) project
349 PROJECT_APP_NAME="${APP_NAME}"
350 OWN_APP_NAME="${EAR_APP_NAME}"
351 elif [ "${project}" = "${CORE_APP_NAME}" ]
353 # Model library project
354 PROJECT_APP_NAME="${APP_NAME}-core"
355 OWN_APP_NAME="${CORE_APP_NAME}"
356 elif [ "${project}" = "${EJB_APP_NAME}" ]
358 # General EJB (bean symbol) project
359 PROJECT_APP_NAME="${APP_NAME}-ejb"
360 OWN_APP_NAME="${EJB_APP_NAME}"
361 elif [ "${project}" = "${LIB_APP_NAME}" ]
363 # General remote-interface project
364 PROJECT_APP_NAME="${APP_NAME}-lib"
365 OWN_APP_NAME="${LIB_APP_NAME}"
366 elif [ "${project}" = "${MAILER_EJB_APP_NAME}" ]
368 # Mailer EJB (bean symbol) project
369 PROJECT_APP_NAME="${APP_NAME}-mailer-ejb"
370 OWN_APP_NAME="${MAILER_EJB_APP_NAME}"
371 elif [ "${project}" = "${MAILER_LIB_APP_NAME}" ]
373 # Mailer remote-interface project
374 PROJECT_APP_NAME="${APP_NAME}-mailer-lib"
375 OWN_APP_NAME="${MAILER_LIB_APP_NAME}"
376 elif [ "${project}" = "${SWING_APP_NAME}" ]
379 PROJECT_APP_NAME="${APP_NAME}-swing"
380 OWN_APP_NAME="${SWING_APP_NAME}"
381 elif [ "${project}" = "${WAR_APP_NAME}" ]
383 # WAR (globe symbol) project
384 PROJECT_APP_NAME="${APP_NAME}-war"
385 OWN_APP_NAME="${WAR_APP_NAME}"
388 echo "$0: Project '${project}' is not supported. Please consider adding it."
393 LOCAL_APP_PATH="${JPROJECTS_HOME}/${PROJECT_APP_NAME}"
395 echo "$0: LOCAL_APP_PATH='${LOCAL_APP_PATH}',PROJECT_APP_NAME='${PROJECT_APP_NAME}'"
396 echo "$0: project='${project}',OWN_APP_NAME='${OWN_APP_NAME}'"
398 # Is same project name?
399 if [ "${OWN_APP_NAME}" != "${project}" ]
401 echo "$0: Not the right project: '${project}'<>'${OWN_APP_NAME}', skipping ..."
403 elif [ "${project}" = "${LOCAL_APP_PATH##*/}" ]
406 echo "$0: Not local-tracking same project '${project}'='${LOCAL_APP_PATH##*/}', skipping ..."
408 elif [ ! -d "${LOCAL_APP_PATH}" ]
410 # Other application's name does not exist
411 echo "$0: Application '${APP_NAME}' not found, skipping ..."
416 LOCAL_TRACKING="${APP_NAME}-local"
417 echo "$0: LOCAL_TRACKING='${LOCAL_TRACKING}'"
419 # Maybe a local-tracking needs to be setup?
420 LOCAL_TRACKING_SETUP=$(git remote | grep "${LOCAL_TRACKING}")
422 if [ -n "${LOCAL_TRACKING_SETUP}" ]
424 echo "$0: Local-tracking from '${project}' to '${LOCAL_APP_PATH##*/}' is already setup."
429 echo "$0: Setting up local-tracking (${LOCAL_TRACKING}) from '${project}' to '${LOCAL_APP_PATH##*/}' ..."
430 git remote add "${LOCAL_TRACKING}" "${LOCAL_APP_PATH}" || exit 255