From 9ae1cd8f91aa6b53404e66588679d852d3972bcd Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Fri, 27 Sep 2013 23:10:53 +0200 Subject: tools: Remove Drupal/SourceForge scripts We moved our web site away from Drupal and the snapshots/guidelines away from SourceForge. The new infrastructure scripts will be maintained in a separate repository together with the Markdown source of the new web site. --- tools/mail_error | 25 ---------- tools/np_build_from_sf | 11 ----- tools/sfsnapshot | 119 --------------------------------------------- tools/sfsnapshot-upload | 125 ------------------------------------------------ tools/sfsnapshotgit | 77 ----------------------------- tools/sfupload | 27 ----------- tools/sfwebcron | 35 -------------- tools/sync_website | 44 ----------------- tools/update_man_pages | 34 ------------- 9 files changed, 497 deletions(-) delete mode 100755 tools/mail_error delete mode 100755 tools/np_build_from_sf delete mode 100755 tools/sfsnapshot delete mode 100755 tools/sfsnapshot-upload delete mode 100755 tools/sfsnapshotgit delete mode 100755 tools/sfupload delete mode 100755 tools/sfwebcron delete mode 100755 tools/sync_website delete mode 100755 tools/update_man_pages (limited to 'tools') diff --git a/tools/mail_error b/tools/mail_error deleted file mode 100755 index aabb579c..00000000 --- a/tools/mail_error +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -# mail_error -o file -m email_address command -# Runs command from cron and redirects all output to file -# If command rc != 0, sends output to email_address - -function die { echo $1 ; exit 1; } - -# Must be export so that sfsnapshot uses correct versions -# of GNU toolchain -export PATH=$HOME/bin:$HOME/local/bin:$PATH - -while getopts "o:m:" c; do - case $c in - o) output_file=$OPTARG;; - m) email=$OPTARG;; - \*) echo "oops";; - esac -done -shift $(($OPTIND-1)) - -[[ -z $1 ]] && die "Must specify command" - -if ! "$@" > $output_file 2>&1 ; then - mail -s "mail_error fail: $1" $email < $output_file -fi diff --git a/tools/np_build_from_sf b/tools/np_build_from_sf deleted file mode 100755 index 7ba349a6..00000000 --- a/tools/np_build_from_sf +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -xeu - -temp=$(mktemp -d) -trap "cd $HOME; rm -rf $temp; exit 1" EXIT -curl -sS http://nagiosplug.sourceforge.net/snapshot/nagios-plugins-HEAD.tar.gz|tar -C "$temp" --strip-components=1 -xzf - -cd $temp -./configure && make -$HOME/bin/update_man_pages - diff --git a/tools/sfsnapshot b/tools/sfsnapshot deleted file mode 100755 index 3b71219a..00000000 --- a/tools/sfsnapshot +++ /dev/null @@ -1,119 +0,0 @@ -#! /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 < 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 diff --git a/tools/sfsnapshot-upload b/tools/sfsnapshot-upload deleted file mode 100755 index d8ebcc54..00000000 --- a/tools/sfsnapshot-upload +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash -# sfsnapshot-upload - Snapshot upload script using sfsnapshotgit -# Original author: Thomas Guyot-Sionnest -# -# This script uses sfsnapshotgit to update the snapshot is needed and upload -# it to SourceForge. The branches to create snapshot from can be given as an -# argument, otherwise the default is master. - -# Handle command errors (-e) and coder sleep deprivation issues (-u) -set -eu -trap 'echo "An error occurred in sfsnapshot-upload at line $LINENO"; exit 1' EXIT - -# This can be used to override the default in sfsnapshotgit: -export SFSNAP_REPO=~/staging/nagiosplugins -export SFSNAP_ORIGIN=origin -export SFSNAP_DEST=~/staging/snapshot - -## Some stuff that shouldn't change often... -# The file we'll use to create the snapshot -sfsnapshot=~/bin/sfsnapshotgit - -# Retention time for snapshots (in minutes), 0 for no retention. -CLEAN_TIME=1440 - -# Where to place the generated files -OUT_SERVER="tonvoon@frs.sourceforge.net" -OUT_PATH="/home/groups/n/na/nagiosplug/htdocs/snapshot" - -# Links to always point to the master branch for backwards-compatibility -COMPATLINKS="HEAD trunk-`date -u +%Y%m%d%H%M`" -# And compatibility links to always delete except the last one -COMPATCLEANUP="trunk-*" - -# If one or more argument is given, this is the branches to create the snapshots from -if [ $# -eq 0 ] -then - HEADS='master' -else - HEADS=$@ -fi - -# If we don't keep old snapshots we can clean up all links now -if [ $CLEAN_TIME -eq 0 ] -then - find $SFSNAP_DEST -type l -name '*.gz' -delete -fi - -for head in $HEADS ; do - # This runs the actual snapshot code. It creates new snapshots if needed and always - # return the current snapshot file (even if it wasn't modified). - file=$($sfsnapshot $head) - # Create main head link - ln -sf $file $SFSNAP_DEST/nagios-plugins-$head.tar.gz - - # Keep links by branch name too if we keep old snapshots, so we can keep tracks of them - if [ $CLEAN_TIME -gt 0 -a ! -e "$SFSNAP_DEST/nagios-plugins-$head-${file#nagios-plugins-}" ] - then - ln -s $file $SFSNAP_DEST/nagios-plugins-$head-${file#nagios-plugins-} - fi - - # Cleanup and re-create backward-compatibility links - if [ "$head" == "master" ] - then - for cclean in $COMPATCLEANUP - do - find $SFSNAP_DEST -type l -name "nagios-plugins-$cclean.tar.gz" -delete - done - for compat in $COMPATLINKS - do - ln -sf $file $SFSNAP_DEST/nagios-plugins-$compat.tar.gz - done - fi -done - -cd $SFSNAP_DEST - -# Clean up links older than $CLEAN_TIME if needed -if [ $CLEAN_TIME -gt 0 ] -then - find . -type l -name '*.gz' -mmin +$CLEAN_TIME -delete -fi - -# Now clean up files that we don't need -# 1. loop over actual snapshots -for dest in `find . -type f -name '*.gz' |xargs -n 1 basename` -do - # 2. Loop over the list of linked-to files - for current in `find . -type l -name '*.gz' |xargs -n 1 readlink | sort | uniq` - do - if [ "$current" == "$dest" ] - then - # File is being linked to - don't delete (continue first loop) - continue 2 - fi - done - # No link to this file, we can drop it - rm -f $dest -done - -# Create MD5 sum -cat <<-END_README > README - This is the latest snapshot of nagiosplug, consisting of the following - head(s): - $HEADS - - The nagios-plugins-.tar.gz link will always point to the latest - corresponding snapshot (nagios-plugins-.tar.gz). - - For backward-compatibility, the nagios-plugins-HEAD.tar.gz and - nagios-plugins-trunk-.tar.gz point to their corresponding "master" - head. - - The tarballs will only be updated when a change has been made. The - MD5SUM file is updated every time the snapshot script runs. - - The MD5SUMs are: - END_README -md5sum *.gz | tee -a README > MD5SUM - -# Sync the files -[ -n "$OUT_SERVER" ] && OUT_SERVER="$OUT_SERVER:" -rsync -a --exclude=.htaccess --exclude=HEADER.html --delete "$SFSNAP_DEST/" "$OUT_SERVER$OUT_PATH" - -trap - EXIT - diff --git a/tools/sfsnapshotgit b/tools/sfsnapshotgit deleted file mode 100755 index 8bc19fce..00000000 --- a/tools/sfsnapshotgit +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash -# sfsnapshotgit - Snapshot script for Git repository -# Original author: Thomas Guyot-Sionnest -# -# Given an optional branch name (master by default), this script creates -# a snapshot from the tip of the branch and move it to ~/staging/. -# The repository, origin and destination directory can be overridden -# with environment variable (see below) - -# Handle command errors (-e) and coder sleep deprivation issues (-u) -set -eu -trap 'echo "An error occurred in sfsnapshotgit at line $LINENO"; exit 1' EXIT - -# Send all command output to STDERR while allowing us to write to STDOUT -# using fd 3 -exec 3>&1 1>&2 - -# Git repository, origin and destination directory can be overridden by -# setting SFSNAP_REPO, SFSNAP_ORIGIN and SFSNAP_DEST respectively from the -# caller The defaults are: -SFSNAP_REPO=${SFSNAP_REPO-~/staging/nagiosplugins} -SFSNAP_ORIGIN=${SFSNAP_ORIGIN-origin} -SFSNAP_DEST=${SFSNAP_DEST-~/staging/snapshot} - -# If one argument is given, this is the branch to create the snapshot from -if [ $# -eq 0 ] -then - HEAD='master' -elif [ $# -eq 1 ] -then - if [ -z "$1" ] - then - echo "If specified, the refspec must not be empty" - exit - fi - HEAD="$1" -else - echo "Too many arguments" - exit -fi - -# Clean up and pull -cd "$SFSNAP_REPO" -# Sometimes "make dist" can modify versioned files so we must reset first -git reset --hard -git clean -qfdx - -# Any branch used to create snapshots must already exist and be properly configured -git checkout "$HEAD" - -# Get the remote tracking branch from config -origin=$(git config branch.$HEAD.remote) -ref=$(git config branch.$HEAD.merge |sed -e 's|^refs/heads/||') -git fetch "$origin" -git reset --hard "$origin/$ref" - -# Tags are important for git-describe, but take only the ones from the hard-coded origin -git fetch --tags "$SFSNAP_ORIGIN" - -# Write our snapshot version string (similar to NP-VERSION-GEN) to "release" -VS=$(git describe --abbrev=4 HEAD) -VS=${VS#release-} - -# Configure and dist only if needed -if [ ! -e "$SFSNAP_DEST/nagios-plugins-$VS.tar.gz" ] -then - tools/setup - ./configure - make dist VERSION=$VS RELEASE=snapshot - cp nagios-plugins-$VS.tar.gz "$SFSNAP_DEST/" -fi - -# fd 3 goes to STDOUT; print the generated filename -echo "nagios-plugins-$VS.tar.gz" 1>&3 - -trap - EXIT - diff --git a/tools/sfupload b/tools/sfupload deleted file mode 100755 index 8925fcb5..00000000 --- a/tools/sfupload +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# SYNTAX: -# sfupload {version} [username] -# Quick script to upload new nagiosplug tarball to SF -# Expects $1 = version number of tarball -# $2 to be username on SF, defaults to $USER -# Expects to be run from top level dir - -function die { echo $1; exit 1; } - -tarball="nagios-plugins-$1.tar.gz" - -if [[ ! -e $tarball ]]; then - die "No tarball found: $tarball"; -fi -md5sum $tarball > $tarball.md5sum - -user=${2:-$USER} -echo "Logging in as $user" -cat </tmp/sfwebcron.log 2>&1 || cat /tmp/sfwebcron.log - -set -eu -trap 'echo "Command failed at line $LINENO"' ERR - -# Set working variables -PROJECT=nagiosplug -IN=${HOME}/sfwebcron -PROBE="developer-guidelines.html.last" -OUT_SERVER="tonvoon@frs.sourceforge.net" -OUT_PATH="/home/groups/n/na/nagiosplug/htdocs" - -# Get latest dev guildelines -[[ ! -d $IN ]] && mkdir $IN -cd $IN -if [[ ! -d nagios-plugins ]] -then - git clone https://github.com/nagios-plugins/nagios-plugins.git nagios-plugins -fi -cd nagios-plugins/doc -git pull - -make -if [[ ! -e $PROBE || developer-guidelines.html -nt $PROBE ]] -then - rsync -av developer-guidelines.{html,sgml} $OUT_SERVER:$OUT_PATH/ - touch $PROBE -fi - diff --git a/tools/sync_website b/tools/sync_website deleted file mode 100755 index 8489bc54..00000000 --- a/tools/sync_website +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/perl -use strict; -use DBI; -#$ENV{PERL5LIB}="plugins-scripts"; # Needed for utils.pm - -unless ($ENV{DRUPAL_PASSWORD}) { - die "Must set envvar for DRUPAL_PASSWORD"; -} - -my $pid = open(F, "-|", qw(ssh -n -N -L 25555:127.0.0.1:3306 nagiosplugins.org)); - -# Allow time for ssh tunnel to be created -sleep 2; - -# To stop the death of ssh tunnel being defunct -$SIG{CHLD} = 'IGNORE'; - -END { kill 'INT', $pid if $pid }; - -my $dbh = DBI->connect("DBI:mysql:database=drupal;host=127.0.0.1;port=25555", "drupal", $ENV{DRUPAL_PASSWORD}); - -my @plugin_paths; -push @plugin_paths, (grep { -x $_ && -f $_ } (, ) ); - -foreach my $plugin_path (@plugin_paths) { - my $plugin = $plugin_path; - $plugin =~ s%.*/%%; - my $help_option = "--help"; - $help_option = "-h" if ($plugin eq "check_icmp"); - my $help = `$plugin_path $help_option` || die "Cannot run $plugin -h"; - $help =~ s//>/g; - - my $rows = $dbh->do("UPDATE node SET created=UNIX_TIMESTAMP(NOW()) WHERE title='$plugin'"); - unless ($rows == 1) { - die "Cannot find $plugin in drupal to update - create book page first"; - } - - $dbh->do("UPDATE node_revisions SET timestamp=UNIX_TIMESTAMP(NOW()), log='Updated by update_online_manpage', teaser='$plugin --help', body=? WHERE title='$plugin'", - {}, - "
".$help."
"); -} - -print "Finished\n"; diff --git a/tools/update_man_pages b/tools/update_man_pages deleted file mode 100755 index 5c4a901e..00000000 --- a/tools/update_man_pages +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/perl -use strict; -use DBI; -#$ENV{PERL5LIB}="plugins-scripts"; # Needed for utils.pm - -unless ($ENV{DRUPAL_PASSWORD}) { - die "Must set envvar for DRUPAL_PASSWORD"; -} - -my $dbh = DBI->connect("DBI:mysql:database=www;host=127.0.0.1", "www", $ENV{DRUPAL_PASSWORD}); - -my @plugin_paths; -push @plugin_paths, (grep { -x $_ && -f $_ } (, ) ); - -foreach my $plugin_path (@plugin_paths) { - my $plugin = $plugin_path; - $plugin =~ s%.*/%%; - my $help_option = "--help"; - $help_option = "-h" if ($plugin eq "check_icmp"); - my $help = `$plugin_path $help_option` || die "Cannot run $plugin -h"; - $help =~ s//>/g; - - my $rows = $dbh->do("UPDATE node SET created=UNIX_TIMESTAMP(NOW()) WHERE title='$plugin'"); - unless ($rows == 1) { - die "Cannot find $plugin in drupal to update - create book page first"; - } - - $dbh->do("UPDATE node_revisions SET timestamp=UNIX_TIMESTAMP(NOW()), log='Updated by update_online_manpage', teaser='$plugin --help', body=? WHERE title='$plugin'", - {}, - "
".$help."
"); -} - -print "Finished\n"; -- cgit v1.2.3