diff --git a/bin/git-myshellconfig-checkout b/bin/git-myshellconfig-checkout index 4273e73..fa401d4 100755 --- a/bin/git-myshellconfig-checkout +++ b/bin/git-myshellconfig-checkout @@ -20,6 +20,14 @@ [ -z "${MYSHELLCONFIG_GIT_REMOTE_NAME+x}" ] && export MYSHELLCONFIG_GIT_REMOTE_NAME=origin [ -z "${MYSHELLCONFIG_GIT_BRANCH+x}" ] && export MYSHELLCONFIG_GIT_BRANCH=master +gitupdateend() { +cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" + ++-----ENDE git update repo $(date) ---------------------------------+ + +EOF +} + ENTRY cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" +-----BEGINN git update repo $(date) -------------------------------+ @@ -50,7 +58,7 @@ if [ $updated -lt $(date --date="${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL fi #echo $SGIT fetch ${MYSHELLCONFIG_GIT_REMOTE_NAME} -p 1>&2 -$SGIT fetch ${GIT_FETCH_OPTIONS} ${MYSHELLCONFIG_GIT_REMOTE_NAME} -p 2>>"${MYSHELLCONFIG_LOGFILE}"|| { logwarn fetch failed; exit 1; } +$SGIT fetch ${GIT_FETCH_OPTIONS} ${MYSHELLCONFIG_GIT_REMOTE_NAME} -p 2>>"${MYSHELLCONFIG_LOGFILE}"|| { logwarn fetch failed; gitupdateend; exit 1; } echo "Check for local changes:" >> "${MYSHELLCONFIG_LOGFILE}" if $SGIT diff-index --ignore-submodules --exit-code HEAD -- >> "${MYSHELLCONFIG_LOGFILE}" ; then @@ -58,8 +66,8 @@ if $SGIT diff-index --ignore-submodules --exit-code HEAD -- >> "${MYSHELLCONFIG_ no changes in local repo $SGIT checkout repo ${PRE}${PRE:+/}${MYSHELLCONFIG_GIT_BRANCH} EOF - $SGIT checkout ${PRE}${PRE:+/}${MYSHELLCONFIG_GIT_BRANCH} 1>>"${MYSHELLCONFIG_LOGFILE}" 2>>"${MYSHELLCONFIG_LOGFILE}"|| exit 2 - $SGIT merge FETCH_HEAD 1>>"${MYSHELLCONFIG_LOGFILE}" 2>>"${MYSHELLCONFIG_LOGFILE}"|| exit 3 + $SGIT checkout ${PRE}${PRE:+/}${MYSHELLCONFIG_GIT_BRANCH} 1>>"${MYSHELLCONFIG_LOGFILE}" 2>>"${MYSHELLCONFIG_LOGFILE}"|| { gitupdateend; exit 2; } + $SGIT merge FETCH_HEAD 1>>"${MYSHELLCONFIG_LOGFILE}" 2>>"${MYSHELLCONFIG_LOGFILE}"|| { gitupdateend; exit 3; } else logwarn -n " Lokale Ă„nderungen festgestellt:" echo " Siehe Logfile ${MYSHELLCONFIG_LOGFILE}" >&2 @@ -79,11 +87,7 @@ else $($SGIT diff-index -p HEAD --) EOF -cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" - -+-----ENDE git update repo $(date) ---------------------------------+ - -EOF + gitupdateend exit 4 fi @@ -91,48 +95,17 @@ fi loginfo -n "repo synced" if ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}}; then -# updated=$(cat ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_udate_submodules 2>/dev/null || echo 0 ) -# if [ $updated -lt $(date --date="${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") ]; then - logdebug "update submodules" - rc=0 - # srv="${MYSHELLCONFIG_GIT_SUBMODULES_SERVER-${MYSHELLCONFIG_GIT_SUBMODULES_SERVER_DEFAULT}}" - # logwarn "srv $srv" - # $SGIT config --file=.gitmodules -l | \ - # grep url= | \ - # awk -F "=" -v srv="${srv%/}${srv:+/}" \ - # '{gsub(/^.*github.com\//,srv,$2); print $1" "$2}' | \ - # while read a b; do - # logdebug "$SGIT config --file=.gitmodules ${a} ${b}" - # $SGIT config --file=.gitmodules "${a}" "${b}" - # done - - # Submodules always have origin and master as repo and branch to track - #$SGIT submodule init 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1|| { logwarn "update submodules failed on ini"; rc=5; } - #$SGIT submodule foreach "git checkout master" 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1 || { logwarn "checkout master submodules failed on set upstream"; rc=7; } - #$SGIT submodule foreach "git branch -u origin/master master" 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1|| { logwarn "set-upstream submodules failed on set upstream"; rc=8; } - #$SGIT submodule update --init --recursive --remote --merge 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1 || { logwarn " update submodules failed on update"; rc=9; } - - # run git submodule sync only ich local repo should use submodule urls from main-project - # so don't use it here - # logdebug "$($SGIT submodule sync)" || { logwarn "sync submodules failed on sync"; rc=6; } logdebug "$($SGIT submodule update --remote)" - #logdebug "$($SGIT submodule update --init --recursive)" - #logdebug "$($SGIT commit .gitmodules -m 'update submodules')" logdebug "$($SGIT commit -a -m 'update submodules')" - #$SGIT submodule update --init --remote --merge 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1 || { logwarn " update submodules failed on update"; rc=9; } - #$SGIT checkout .gitmodules - logdebug "submodules updated successfully" - loginfo -n ", submodules synced" date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_udate_submodules - else - logdebug "submodules not updated. last update is less then ${MYSHELLCONFIG_GIT_SUBMODULE_UPDATE_INTERVALL} hours ago" - fi +# else +# logdebug "submodules not updated. last update is less then ${MYSHELLCONFIG_GIT_SUBMODULE_UPDATE_INTERVALL} hours ago" +# fi -#else -# loginfo -n ", submodules not synced" -# logdebug "Do not update submodules. It's denied by environment MYSHELLCONFIG_GIT_UPDATE_SUBMODULES: ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}}" -#fi -loginfo -n ": " +else + loginfo -n ", submodules not synced" + logdebug "Do not update submodules. It's denied by environment MYSHELLCONFIG_GIT_UPDATE_SUBMODULES: ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}}" +fi EXIT exit $rc