LOCAL_MIRROR_DIR="/git-mirror"
QUIET=0
FAILED=0
+FAILED_CMDS=""
function msg () {
if [ $QUIET -eq 0 ]
}
function error () {
+ SUBJECT=$1
+ MSG=$2
for admin in $ADMINS
do
- echo "[ERROR] xxxxxxxxxxx $@" | mail -s "$@" $admin
+ echo -e "$MSG" | mail -s "$SUBJECT" $admin
done
}
if [ $? -ne 0 ]
then
FAILED=1
+ FAILED_CMDS="$FAILED_CMDS\n$COMMAND"
fi
popd > /dev/null
}
function run_ignore_errors () {
OLD_FAILED=$FAILED
+ OLD_FAILED_CMDS=$FAILED_CMDS
run "$1" "$2"
FAILED=$OLD_FAILED
+ FAILED_CMDS=$OLD_FAILED_CMDS
}
function merge_all_branches () {
merge_all_branches $NAME local_master $REPO_DIR
if [ $FAILED -ne 0 ]
then
- error "git-mirror.sh failed on ${MIRROR_REPO}"
+ pushd ${REPO_DIR} > /dev/null
+ STATUS_OUT=$(git status)
+ popd > /dev/null
+ error "git-mirror.sh failed on ${MIRROR_REPO}" "STATUS:\n$STATUS_OUT \n\n------------\n FAILED COMMANDS:\n$FAILED_CMDS"
else
run "git push --tags local_master" ${REPO_DIR}
push_all_branches $NAME local_master $REPO_DIR