QUIET=0
FAILED=0
FAILED_CMDS=""
+NOTIFIED_FILE="NOTIFIED_ADMINS"
function msg () {
if [ $QUIET -eq 0 ]
function error () {
SUBJECT=$1
MSG=$2
+ CHECK_FILE=$3/$NOTIFIED_FILE
+
+ if [ -f $CHECK_FILE ]
+ then
+ return
+ fi
+
for admin in $ADMINS
do
echo -e "$MSG" | mail -s "$SUBJECT" $admin
done
+ touch $CHECK_FILE
}
function run () {
merge_all_branches $NAME origin $REPO_DIR
if [ $? -ne 0 ]
then
- error "Can not fetch from ${MASTER_REPO}"
+ error "git-mirror.sh failed" "Can not fetch from ${MASTER_REPO}" $REPO_DIR
fi
else
msg "mirroring ${NAME} for the first time"
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"
+ error "git-mirror.sh failed on ${MIRROR_REPO}" "STATUS:\n$STATUS_OUT \n\n------------\n FAILED COMMANDS:\n$FAILED_CMDS" $REPO_DIR
else
run "git push --tags local_master" ${REPO_DIR}
push_all_branches $NAME local_master $REPO_DIR
fi
fi
+
+ CHECK_FILE=$REPO_DIR/$NOTIFIED_FILE
+ rm -f $CHECK_FILE
done
}