update submods and repo only after intervall
This commit is contained in:
parent
007ba8bc13
commit
615df5a035
2 changed files with 47 additions and 41 deletions
12
bashrc_add
12
bashrc_add
|
@ -27,6 +27,8 @@ if [[ $- = *i* ]] ; then
|
||||||
# hardcoded paths
|
# hardcoded paths
|
||||||
export MSC_BASE_PARENT="$(dirname $MSC_BASE)"
|
export MSC_BASE_PARENT="$(dirname $MSC_BASE)"
|
||||||
export MSC_BASH_COMPLETION="${HOME}/${MSC_SUBPATH}/bash_completion.d"
|
export MSC_BASH_COMPLETION="${HOME}/${MSC_SUBPATH}/bash_completion.d"
|
||||||
|
export MSC_GIT_UPD_SUBMOD_STATFILE="${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules"
|
||||||
|
export MSC_GIT_UPD_REPO_STATFILE="${MSC_BASE%/}${MSC_BASE:+/}.last_update_repo"
|
||||||
|
|
||||||
# Load DEFAULTS
|
# Load DEFAULTS
|
||||||
[ -e ${MSC_BASE}/defaults.conf ] && . ${MSC_BASE}/defaults.conf
|
[ -e ${MSC_BASE}/defaults.conf ] && . ${MSC_BASE}/defaults.conf
|
||||||
|
@ -50,6 +52,7 @@ if [[ $- = *i* ]] ; then
|
||||||
[ -z "${MSC_GIT_SUBMODULES_UPDATE_INTERVALL+x}" ] && export MSC_GIT_SUBMODULES_UPDATE_INTERVALL=96 #intervall in hours
|
[ -z "${MSC_GIT_SUBMODULES_UPDATE_INTERVALL+x}" ] && export MSC_GIT_SUBMODULES_UPDATE_INTERVALL=96 #intervall in hours
|
||||||
[ -z "${MSC_GIT_SUBMODULES_SERVER_DEFAULT+x}" ] && export MSC_GIT_SUBMODULES_SERVER_DEFAULT="git://git.schuerz.at/github.com/"
|
[ -z "${MSC_GIT_SUBMODULES_SERVER_DEFAULT+x}" ] && export MSC_GIT_SUBMODULES_SERVER_DEFAULT="git://git.schuerz.at/github.com/"
|
||||||
[ -z "${MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT+x}" ] && export MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT="-h"
|
[ -z "${MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT+x}" ] && export MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT="-h"
|
||||||
|
|
||||||
# hardcoded git
|
# hardcoded git
|
||||||
export SGIT="git -C ${MSC_BASE}"
|
export SGIT="git -C ${MSC_BASE}"
|
||||||
|
|
||||||
|
@ -90,7 +93,8 @@ EOF
|
||||||
|
|
||||||
ckrepo () {
|
ckrepo () {
|
||||||
# check if remote repo is reachable
|
# check if remote repo is reachable
|
||||||
if $MSC_GIT_SYNC; then
|
if [ $MSC_GIT_SYNC -a $(stat --printf %Y ${MSC_GIT_UPD_REPO_STATFILE} 2>/dev/null || echo 0 ) \
|
||||||
|
-lt $(date --date="${MSC_GIT_REPO_UPDATE_INTERVALL-0} hours ago" "+%s") ]; then
|
||||||
if $( timeout --foreground "${MSC_GIT_TIMEOUT}" $SGIT ls-remote >/dev/null 2>&1) ;then
|
if $( timeout --foreground "${MSC_GIT_TIMEOUT}" $SGIT ls-remote >/dev/null 2>&1) ;then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
|
@ -104,12 +108,14 @@ EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
lastupdatesubmodules () {
|
lastupdatesubmodules () {
|
||||||
date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules
|
#date "+%s" > ${MSC_GIT_UPD_SUBMOD_STATFILE}
|
||||||
|
touch ${MSC_GIT_UPD_REPO_STATFILE}
|
||||||
}
|
}
|
||||||
export -f lastupdatesubmodules
|
export -f lastupdatesubmodules
|
||||||
|
|
||||||
lastupdaterepo () {
|
lastupdaterepo () {
|
||||||
date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_repo
|
#date "+%s" > ${MSC_GIT_UPD_REPO_STATFILE}
|
||||||
|
touch ${MSC_GIT_UPD_REPO_STATFILE}
|
||||||
}
|
}
|
||||||
export -f lastupdaterepo
|
export -f lastupdaterepo
|
||||||
|
|
||||||
|
|
|
@ -61,15 +61,19 @@ done
|
||||||
#echo -n " remote: ${MSC_GIT_REMOTE_NAME}, branch: ${MSC_GIT_BRANCH}: "
|
#echo -n " remote: ${MSC_GIT_REMOTE_NAME}, branch: ${MSC_GIT_BRANCH}: "
|
||||||
|
|
||||||
# Check for updates in submodules only if last check was INTERVALL hours in the past
|
# Check for updates in submodules only if last check was INTERVALL hours in the past
|
||||||
if [ $(cat ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \
|
#if [ $(cat ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \
|
||||||
|
[ -z "${MSC_GIT_UPD_SUBMOD_STATFILE+x}" ] && export MSC_GIT_UPD_SUBMOD_STATFILE="${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules"
|
||||||
|
[ -z "${MSC_GIT_UPD_REPO_STATFILE+x}" ] && export MSC_GIT_UPD_REPO_STATFILE="${MSC_BASE%/}${MSC_BASE:+/}.last_update_repo"
|
||||||
|
|
||||||
|
if [ $(stat --printf %Y ${MSC_GIT_UPD_SUBMOD_STATFILE} 2>/dev/null || echo 0 ) \
|
||||||
-lt $(date --date="${MSC_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \
|
-lt $(date --date="${MSC_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \
|
||||||
-a ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then
|
-a ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then
|
||||||
[ -z "${dosrepoupdate+x}" ] && dorepoupdate="true"
|
[ -z "${dosrepoupdate+x}" ] && dorepoupdate="true"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $(cat ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \
|
if [ $(stat --printf %Y ${MSC_GIT_UPD_REPO_STATFILE} 2>/dev/null || echo 0 ) \
|
||||||
-lt $(date --date="${MSC_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \
|
-lt $(date --date="${MSC_GIT_REPO_UPDATE_INTERVALL} hours ago" "+%s") \
|
||||||
-a ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then
|
-a ${MSC_GIT_REPO_UPDATE-${MSC_GIT_REPO_UPDATE_DEFAULT-true}} ]; then
|
||||||
[ -z "${dosubmodupdate+x}" ] && dosubmodupdate="true"
|
[ -z "${dosubmodupdate+x}" ] && dosubmodupdate="true"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -88,6 +92,7 @@ if $SGIT diff-index --ignore-submodules --exit-code HEAD -- >> "${MSC_LOGFILE}"
|
||||||
EOF
|
EOF
|
||||||
$SGIT checkout ${PRE}${PRE:+/}${MSC_GIT_BRANCH} 1>>"${MSC_LOGFILE}" 2>>"${MSC_LOGFILE}"|| { gitupdateend; exit 2; }
|
$SGIT checkout ${PRE}${PRE:+/}${MSC_GIT_BRANCH} 1>>"${MSC_LOGFILE}" 2>>"${MSC_LOGFILE}"|| { gitupdateend; exit 2; }
|
||||||
$SGIT merge FETCH_HEAD 1>>"${MSC_LOGFILE}" 2>>"${MSC_LOGFILE}"|| { gitupdateend; exit 3; }
|
$SGIT merge FETCH_HEAD 1>>"${MSC_LOGFILE}" 2>>"${MSC_LOGFILE}"|| { gitupdateend; exit 3; }
|
||||||
|
touch $MSC_GIT_UPD_REPO_STATFILE
|
||||||
else
|
else
|
||||||
logwarn -n " Lokale Änderungen festgestellt:"
|
logwarn -n " Lokale Änderungen festgestellt:"
|
||||||
echo " Siehe Logfile ${MSC_LOGFILE}" >&2
|
echo " Siehe Logfile ${MSC_LOGFILE}" >&2
|
||||||
|
@ -114,18 +119,13 @@ fi
|
||||||
|
|
||||||
loginfo "repo${dosubmodupdate:+ and submodules} synced"
|
loginfo "repo${dosubmodupdate:+ and submodules} synced"
|
||||||
|
|
||||||
#if ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}}; then
|
|
||||||
if ${dosubmodupdate:-false}; then
|
if ${dosubmodupdate:-false}; then
|
||||||
loginfo "update and commit submodules"
|
loginfo "update and commit submodules"
|
||||||
logdebug "$($SGIT submodule update --remote)"
|
logdebug "$($SGIT submodule update --remote)"
|
||||||
logdebug "$($SGIT commit -a -m 'update submodules')"
|
logdebug "$($SGIT commit -a -m 'update submodules')"
|
||||||
lastupdatesubmodules
|
touch $MSC_GIT_UPD_SUBMOD_STATFILE
|
||||||
logwarn "submodules synced"
|
logwarn "submodules synced"
|
||||||
fi
|
fi
|
||||||
#else
|
|
||||||
# loginfo -n ", submodules not synced"
|
|
||||||
# logdebug "Do not update submodules. It's denied by environment MSC_GIT_UPDATE_SUBMODULES: ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}}"
|
|
||||||
#fi
|
|
||||||
|
|
||||||
EXIT
|
EXIT
|
||||||
exit $rc
|
exit $rc
|
||||||
|
|
Loading…
Reference in a new issue