|
|
@@ -1,94 +0,0 @@
|
|
|
-#!/bin/sh
|
|
|
-#
|
|
|
-# Copyright (c) 2009 Nagios Plugins Development Team
|
|
|
-#
|
|
|
-# This program is free software: you can redistribute it and/or modify
|
|
|
-# it under the terms of the GNU General Public License as published by
|
|
|
-# the Free Software Foundation, either version 3 of the License, or
|
|
|
-# (at your option) any later version.
|
|
|
-#
|
|
|
-# This program is distributed in the hope that it will be useful,
|
|
|
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
-# GNU General Public License for more details.
|
|
|
-#
|
|
|
-# You should have received a copy of the GNU General Public License
|
|
|
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
-
|
|
|
-set -e
|
|
|
-set -u
|
|
|
-
|
|
|
-prefix='/home/git'
|
|
|
-
|
|
|
-PATH="$prefix/opt/git/bin:/bin:/usr/bin"
|
|
|
-export PATH
|
|
|
-
|
|
|
-gitnotify="$prefix/libexec/git-notify"
|
|
|
-recipient='Nagios Plugins Commit List <nagiosplug-checkins@lists.sourceforge.net>'
|
|
|
-maxcommits=100
|
|
|
-maxdiffsize=$((300 * 1024))
|
|
|
-gitweburl='http://repo.or.cz/w'
|
|
|
-tempprefix='/dev/shm'
|
|
|
-fourtyzeros=$(printf '%.40u' 0)
|
|
|
-myself=${0##*/}
|
|
|
-
|
|
|
-checkrefs()
|
|
|
-{
|
|
|
- turn=$1
|
|
|
-
|
|
|
- git show-ref | while read object ref
|
|
|
- do
|
|
|
- refdir="$tempdir/${ref%/*}"
|
|
|
- reffile="$tempdir/$ref"
|
|
|
-
|
|
|
- if [ $turn -eq 2 -a -f "$reffile" ] \
|
|
|
- && grep "^1 $object$" "$reffile" >'/dev/null'
|
|
|
- then # The ref has not been modified.
|
|
|
- rm -f "$reffile"
|
|
|
- else
|
|
|
- mkdir -p "$refdir"
|
|
|
- echo "$turn $object" >>"$reffile"
|
|
|
- fi
|
|
|
- done
|
|
|
-}
|
|
|
-
|
|
|
-if [ $# -lt 1 ]
|
|
|
-then
|
|
|
- echo >&2 "Usage: $myself <repository> ..."
|
|
|
- exit 1
|
|
|
-fi
|
|
|
-
|
|
|
-tempdir=$(mktemp -d "$tempprefix/$myself.XXXXXX")
|
|
|
-tempfile=$(mktemp "$tempprefix/$myself.XXXXXX")
|
|
|
-trap 'rm -rf "$tempdir" "$tempfile"' EXIT
|
|
|
-
|
|
|
-for repository in "$@"
|
|
|
-do
|
|
|
- cd "$repository"
|
|
|
-
|
|
|
- checkrefs 1
|
|
|
- if ! git remote update --prune >"$tempfile" 2>&1
|
|
|
- then
|
|
|
- cat >&2 "$tempfile"
|
|
|
- exit 1
|
|
|
- fi
|
|
|
- git fetch --quiet --tags
|
|
|
- checkrefs 2
|
|
|
-
|
|
|
- find "$tempdir" -type 'f' -print | while read reffile
|
|
|
- do
|
|
|
- ref=${reffile#$tempdir/}
|
|
|
- old=$(awk '$1 == "1" { print $2; exit }' "$reffile")
|
|
|
- new=$(awk '$1 == "2" { print $2; exit }' "$reffile")
|
|
|
- old=${old:-$fourtyzeros}
|
|
|
- new=${new:-$fourtyzeros}
|
|
|
-
|
|
|
- echo "$old" "$new" "$ref"
|
|
|
- done | $gitnotify \
|
|
|
- -m "$recipient" \
|
|
|
- -n "$maxcommits" \
|
|
|
- -s "$maxdiffsize" \
|
|
|
- -u "$gitweburl"
|
|
|
-
|
|
|
- cd "$OLDPWD"
|
|
|
-done
|