simple check to prevent spam from git-mirror
authorBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Wed, 3 Nov 2010 15:58:10 +0000 (16:58 +0100)
committerBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Wed, 3 Nov 2010 15:58:10 +0000 (16:58 +0100)
scripts/git-mirror.sh

index ec6e52d..029fcab 100755 (executable)
@@ -7,6 +7,7 @@ LOCAL_MIRROR_DIR="/git-mirror"
 QUIET=0
 FAILED=0
 FAILED_CMDS=""
+NOTIFIED_FILE="NOTIFIED_ADMINS"
 
 function msg () {
     if [ $QUIET -eq 0 ]
@@ -18,10 +19,18 @@ function msg () {
 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 () {
@@ -109,7 +118,7 @@ function mirror () {
                 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"
@@ -126,12 +135,15 @@ function mirror () {
                 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
 }