3 . ./.jprojects.sh || exit 255
6 UNWANTED_NAME2="jjobboards"
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}'. Removing it..."
232 git remote remove "${UNWANTED_REMOTE}" || exit 255
234 echo "$0: No unwanted '${UNWANTED_NAME2}' remote in '${project}' ..."
235 UPSTREAM_REMOTE1=$(git remote | grep "${WANTED_NAME1}")
236 UPSTREAM_REMOTE2=$(git remote | grep "${WANTED_NAME2}")
237 UPSTREAM_REMOTE3=$(git remote | grep "${WANTED_NAME3}")
238 UPSTREAM_REMOTE4=$(git remote | grep "${WANTED_NAME4}")
239 echo "$0: UPSTREAM_REMOTE1='${UPSTREAM_REMOTE1}',UPSTREAM_REMOTE2='${UPSTREAM_REMOTE2}',UPSTREAM_REMOTE3='${UPSTREAM_REMOTE3},UPSTREAM_REMOTE4='${UPSTREAM_REMOTE4}'"
241 if [ -n "${UPSTREAM_REMOTE1}" ]
243 echo "$0: Wanted remote '${WANTED_NAME1}' already found in '${project}'."
245 echo "$0: No wanted '${WANTED_NAME1}' in '${project}'. Adding ..."
246 git remote add "${WANTED_NAME1}" "${GIT_URL1}" --track "${GIT_BRANCH}" || exit 255
249 if [ -n "${UPSTREAM_REMOTE2}" ]
251 echo "$0: Remote '${WANTED_NAME2}' found in '${project}'."
252 elif [ ! -d "${GIT_URL2}" ]
254 echo "$0: Remote '${WANTED_NAME2}' cannot be created, path '${GIT_URL2}' missing."
255 elif [ -n "${WANTED_NAME2}" ]
257 echo "$0: No wanted '${WANTED_NAME2}' in '${project}'. Adding ..."
258 git remote add "${WANTED_NAME2}" "${GIT_URL2}" --track "${GIT_BRANCH}" || exit 255
261 if [ -n "${UPSTREAM_REMOTE3}" ]
263 echo "$0: Remote '${WANTED_NAME3}' found in '${project}'."
264 elif [ ! -d "${GIT_URL3}" ]
266 echo "$0: Remote '${WANTED_NAME3}' cannot be created, path '${GIT_URL3}' missing."
268 echo "$0: No wanted '${WANTED_NAME3}' in '${project}'. Adding ..."
269 git remote add "${WANTED_NAME3}" "${GIT_URL3}" --track "${GIT_BRANCH}" || exit 255
272 if [ -n "${UPSTREAM_REMOTE4}" ]
274 echo "$0: Remote '${WANTED_NAME4}' found in '${project}'."
275 elif [ ! -d "${GIT_URL4}" ]
277 echo "$0: Remote '${WANTED_NAME4}' cannot be created, path '${GIT_URL4}' missing."
279 echo "$0: No wanted '${WANTED_NAME4}' in '${project}'. Adding ..."
280 git remote add "${WANTED_NAME4}" "${GIT_URL4}" --track "${GIT_BRANCH}" || exit 255
284 echo "$0: Setting upstream to '${GIT_ORIGIN}/${GIT_BRANCH}' ..."
285 git branch --set-upstream-to "${GIT_ORIGIN}/${GIT_BRANCH}"
287 # Is not an application by default
290 # Now "walk" through all base application names
291 for APP_NAME in ${BASE_APPLICATION_NAMES}; do
292 echo "$0: project='${project}',APP_NAME='${APP_NAME}'"
294 # Is it part of the project's name?
295 PART=$(echo "${project}" | grep "${APP_NAME}")
300 # Skip this entire loop
304 # Found one that maybe needs fixing
307 # Skip further search
311 echo "$0: IS_APP='${IS_APP}'"
313 # Is the current project an application (or part of it)?
314 if [ -z "${IS_APP}" ]
317 echo "$0: Project '${project}' is no application."
321 # Generate all sub-project names
322 EAR_APP_NAME="${IS_APP}"
323 CORE_APP_NAME="${IS_APP}-core"
324 EJB_APP_NAME="${IS_APP}-ejb"
325 LIB_APP_NAME="${IS_APP}-lib"
326 MAILER_EJB_APP_NAME="${IS_APP}-mailer-ejb"
327 MAILER_LIB_APP_NAME="${IS_APP}-mailer-lib"
328 SWING_APP_NAME="${IS_APP}-swing"
329 WAR_APP_NAME="${IS_APP}-war"
331 # It is an application, then run through all projects again
332 for APP_NAME in ${BASE_APPLICATION_NAMES}; do
333 echo "$0: project='${project}',APP_NAME='${APP_NAME}'"
335 # What project do we have?
336 if [ "${project}" = "${EAR_APP_NAME}" ]
338 # EAR (triangle symbol) project
339 PROJECT_APP_NAME="${APP_NAME}"
340 OWN_APP_NAME="${EAR_APP_NAME}"
341 elif [ "${project}" = "${CORE_APP_NAME}" ]
343 # Model library project
344 PROJECT_APP_NAME="${APP_NAME}-core"
345 OWN_APP_NAME="${CORE_APP_NAME}"
346 elif [ "${project}" = "${EJB_APP_NAME}" ]
348 # General EJB (bean symbol) project
349 PROJECT_APP_NAME="${APP_NAME}-ejb"
350 OWN_APP_NAME="${EJB_APP_NAME}"
351 elif [ "${project}" = "${LIB_APP_NAME}" ]
353 # General remote-interface project
354 PROJECT_APP_NAME="${APP_NAME}-lib"
355 OWN_APP_NAME="${LIB_APP_NAME}"
356 elif [ "${project}" = "${MAILER_EJB_APP_NAME}" ]
358 # Mailer EJB (bean symbol) project
359 PROJECT_APP_NAME="${APP_NAME}-mailer-ejb"
360 OWN_APP_NAME="${MAILER_EJB_APP_NAME}"
361 elif [ "${project}" = "${MAILER_LIB_APP_NAME}" ]
363 # Mailer remote-interface project
364 PROJECT_APP_NAME="${APP_NAME}-mailer-lib"
365 OWN_APP_NAME="${MAILER_LIB_APP_NAME}"
366 elif [ "${project}" = "${SWING_APP_NAME}" ]
369 PROJECT_APP_NAME="${APP_NAME}-swing"
370 OWN_APP_NAME="${SWING_APP_NAME}"
371 elif [ "${project}" = "${WAR_APP_NAME}" ]
373 # WAR (globe symbol) project
374 PROJECT_APP_NAME="${APP_NAME}-war"
375 OWN_APP_NAME="${WAR_APP_NAME}"
378 echo "$0: Project '${project}' is not supported. Please consider adding it."
383 LOCAL_APP_PATH="${JPROJECTS_HOME}/${PROJECT_APP_NAME}"
385 echo "$0: LOCAL_APP_PATH='${LOCAL_APP_PATH}',PROJECT_APP_NAME='${PROJECT_APP_NAME}'"
386 echo "$0: project='${project}',OWN_APP_NAME='${OWN_APP_NAME}'"
388 # Is same project name?
389 if [ "${OWN_APP_NAME}" != "${project}" ]
391 echo "$0: Not the right project: '${project}'<>'${OWN_APP_NAME}', skipping ..."
393 elif [ "${project}" = "${LOCAL_APP_PATH##*/}" ]
396 echo "$0: Not local-tracking same project '${project}'='${LOCAL_APP_PATH##*/}', skipping ..."
398 elif [ ! -d "${LOCAL_APP_PATH}" ]
400 # Other application's name does not exist
401 echo "$0: Application '${APP_NAME}' not found, skipping ..."
406 LOCAL_TRACKING="${APP_NAME}-local"
407 echo "$0: LOCAL_TRACKING='${LOCAL_TRACKING}'"
409 # Maybe a local-tracking needs to be setup?
410 LOCAL_TRACKING_SETUP=$(git remote | grep "${LOCAL_TRACKING}")
412 if [ -n "${LOCAL_TRACKING_SETUP}" ]
414 echo "$0: Local-tracking from '${project}' to '${LOCAL_APP_PATH##*/}' is already setup."
419 echo "$0: Setting up local-tracking (${LOCAL_TRACKING}) from '${project}' to '${LOCAL_APP_PATH##*/}' ..."
420 git remote add "${LOCAL_TRACKING}" "${LOCAL_APP_PATH}" || exit 255