mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-03-28 13:23:32 -04:00
119 lines
3 KiB
Bash
Executable file
119 lines
3 KiB
Bash
Executable file
#! /bin/bash
|
|
|
|
# Butchered version of snapshot
|
|
# Can only run on the shell compile farm server
|
|
# Will always create a snapshot of HEAD
|
|
# If want multiple snapshots, just run with "sfsnapshot [branch ...]"
|
|
# Assumes:
|
|
# ssh setup to send to shell.sf.net and $CF without password prompt
|
|
# the compile server has all the prerequisites stated at http://nagiosplug.sourceforge.net/developer-guidelines.html
|
|
# Install in cron with something like:
|
|
# 47 * * * * $HOME/bin/mail_error -o $HOME/sfsnapshot.out -m tonvoon@users.sf.net sfsnapshot r1_3_0
|
|
|
|
function die { echo $1; exit 1; }
|
|
|
|
# This makes the distribution. Expects $1 as branches/name, otherwise uses trunk
|
|
function make_dist {
|
|
if [[ -n $1 ]] ; then
|
|
svn_url_suffix=$1
|
|
name=${1##*/}
|
|
else
|
|
svn_url_suffix="trunk"
|
|
name="trunk"
|
|
fi
|
|
v="$name-"
|
|
|
|
# Get compile server to do the work
|
|
# Variables will be expanded locally before being run on $CF
|
|
ssh $CF <<EOF
|
|
set -x
|
|
PATH=$PATH:/usr/local/bin
|
|
[[ ! -d $COMPILE_DIR/$name ]] && mkdir -p $COMPILE_DIR/$name
|
|
cd $COMPILE_DIR/$name
|
|
|
|
# Cannot use cvs export due to conflicts on second run - think this is better for cvs server
|
|
svn export https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/$svn_url_suffix $PROJECT
|
|
|
|
cd $PROJECT
|
|
|
|
tools/setup
|
|
|
|
./configure
|
|
|
|
# Make the Nagiosplug dist tarball
|
|
make dist VERSION=$v$DS RELEASE=snapshot
|
|
|
|
# May fail if file not generated - do not trap
|
|
mv *.gz $IN
|
|
|
|
rm -rf $COMPILE_DIR
|
|
# End ssh
|
|
EOF
|
|
}
|
|
|
|
# Set working variables
|
|
PROJECT=nagiosplug
|
|
|
|
# This is local to the compile server for faster compile
|
|
COMPILE_DIR=/tmp/tonvoon/tmp_snapshot
|
|
|
|
# Needs to be on NFS so gz file can be read on the compile shell server
|
|
IN=${HOME}/tmp_snapshot
|
|
|
|
# Where to place the generated files
|
|
OUT_SERVER="tonvoon@web.sourceforge.net"
|
|
OUT="/home/groups/n/na/nagiosplug/htdocs/snapshot"
|
|
|
|
# Make sure prereqs are satisfied on server!
|
|
CF="localhost"
|
|
DS=`date -u +%Y%m%d%H%M`
|
|
|
|
# Setup home directory area
|
|
[[ ! -d $IN ]] && mkdir -p $IN
|
|
|
|
# Make dists for HEAD and any others in command parameters
|
|
make_dist
|
|
for i in $* ; do
|
|
make_dist $i
|
|
done
|
|
|
|
# Create MD5 sum
|
|
cd $IN
|
|
cat <<-END_README > README
|
|
This is the daily SVN snapshot of nagiosplug, consisting of the SVN trunk
|
|
and any other branches.
|
|
|
|
The nagios-plugins-HEAD.tar.gz link will always go to the latest trunk snapshot
|
|
(name kept for existing tinderbox scripts to link correctly).
|
|
|
|
The MD5SUM is:
|
|
END_README
|
|
md5sum *.gz | tee -a README > MD5SUM
|
|
|
|
|
|
# Check for *.gz files locally (expect NFS between cf shell server and $CF)
|
|
set -x
|
|
cd $IN
|
|
files=$(ls *.gz 2>/dev/null)
|
|
[[ -z $files ]] && die "No files created"
|
|
head_file=$(cd $IN && ls -rt *-trunk-*.gz | head -1 2>/dev/null)
|
|
cat <<-EOF > /tmp/batchfile.$$
|
|
cd $OUT
|
|
rm *.gz
|
|
put *.gz
|
|
ln $head_file nagios-plugins-HEAD.tar.gz
|
|
put MD5SUM
|
|
put README readme
|
|
EOF
|
|
|
|
# Do the actual transfer
|
|
# Have to put README down as readme because SF's apache server appears to block README files
|
|
sftp -b /tmp/batchfile.$$ $OUT_SERVER
|
|
|
|
rm -f $files /tmp/batchfile.$$
|
|
|
|
# Work out success or failure
|
|
expected=$(($# + 1))
|
|
set -- $files
|
|
[[ $# -ne $expected ]] && die "Expected $expected, got $#"
|
|
exit 0
|