Great reorganization.
[profile] / mdw-build
diff --git a/mdw-build b/mdw-build
deleted file mode 100755 (executable)
index 7003964..0000000
--- a/mdw-build
+++ /dev/null
@@ -1,261 +0,0 @@
-#! /bin/bash
-###
-### Build script for Debian packages
-###
-### (c) 2008 Mark Wooding
-###
-
-###----- Licensing notice ---------------------------------------------------
-###
-### 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 2 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, write to the Free Software Foundation,
-### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-set -e
-
-###--------------------------------------------------------------------------
-### Parse options.
-
-usage () {
-  cat <<EOF
-Usage: $0 [-vr] BUILDOPT
-
-Build options:
-
-  [no]checkout[=REV]
-  [no]release
-  [no]setup
-  [no]distcheck
-  [no]debian
-  [no]upload
-  [no]clean
-EOF
-}
-
-## Parse simple options.
-verbose=no
-while getopts "hvr" opt; do
-  case "$opt" in
-    h) usage; exit 0 ;;
-    v) verbose=yes ;;
-    *) exit 1 ;;
-  esac
-done
-shift $((OPTIND - 1))
-
-## Parse the build options.
-checkout=yes
-checkoutrev=HEAD
-build=test
-setup=yes
-distcheck=yes
-debian=yes
-upload=yes
-clean=yes
-for opt; do
-  case "$opt" in
-    checkout)  checkout=yes checkoutrev=HEAD ;;
-    checkout=*) checkout=yes checkoutrev=${opt#*=} ;;
-    nocheckout) checkout=no ;;
-    release)   build=release ;;
-    norelease) build=test ;;
-
-    setup | distcheck | debian | upload | clean)
-      eval "$opt=yes"
-      ;;
-    nosetup | nodistcheck | nodebian | noupload | noclean)
-      eval "${opt#no}=no"
-      ;;
-    *)
-      usage >&2
-      exit 1
-      ;;
-  esac
-done
-
-###--------------------------------------------------------------------------
-### Utility functions.
-
-exec 3>&2 4>/dev/null 5>&2
-
-notify () {
-  colour=$1 message=$2
-  echo $message >&4
-  echo "$(tput bold; tput setaf $colour)$message$(tput sgr0; tput op)" >&5
-}
-
-fail () {
-  notify 1 "!!! $*"
-  exit 1
-}
-
-info () {
-  notify 6 "--- $*"
-}
-
-assign () {
-  info "$1 = $2"
-  eval "$1=$2"
-}
-
-runx () {
-  notify 2 "+++ $*"
-  "$@" 2>&3 || fail "$1: exit $?"
-}
-
-run () { runx "$@" >&3; }
-
-yesno () {
-  echo -n "(test $*)" >&4
-  if "$@" >&4 2>&4; then
-    echo "(yes)" >&4
-    echo yes
-  else
-    echo "(no)" >&4
-    echo no
-  fi
-}
-
-###--------------------------------------------------------------------------
-### Do the building.
-
-## Find the top-level package directory.
-while [ ! -f configure.ac -a ! -f configure.in -a ! -f .links ]; do
-  case "$(pwd)" in
-    /)
-      fail "couldn't find top-level directory"
-      ;;
-  esac
-  cd ..
-done
-assign srcpath $(pwd)
-
-## Construct the output directory.
-assign releasepath $srcpath/dist-$build
-chmod -R +w $releasepath 2>/dev/null|| :
-rm -rf $releasepath 2>/dev/null || :
-mkdir $releasepath
-case $verbose in
-  no)
-    exec 4>$releasepath/mdw-build.log 3>&4 ||
-      fail "Failed to create log."
-    ;;
-esac
-
-## Maybe check out a copy of the source.
-case "$checkout,$setup,$(yesno [ -d $srcpath/.git ])" in
-  yes,no,*)
-    fail "Inconsistent options: can't check out without setup."
-    ;;
-  yes,yes,no)
-    info "No Git repository found."
-    ;;
-  yes,yes,yes)
-    cd $srcpath
-    [ "$(git ls-files -m)" = "" ] ||
-      fail "working tree has uncommitted changes"
-    cd $releasepath
-    run git clone -sn $srcpath/.git _source
-    assign srcpath $releasepath/_source
-    cd $srcpath
-    run git checkout -b mdw-build $checkoutrev
-    ;;
-esac
-
-## Maybe refresh the build machinery.
-case "$setup" in
-  yes)
-    run mdw-setup
-    ;;
-esac
-
-## Initialize the build directory.
-if [ -e $srcpath/configure ]; then
-  assign buildpath $releasepath/_build
-  mkdir $buildpath
-  cd $buildpath
-  run $srcpath/configure
-else
-  info "no configure script"
-  assign buildpath $srcpath
-  cd $srcpath
-fi
-
-## Discover the release name.
-cat >find-distdir.mk <<'EOF'
-include Makefile
-print-distdir:
-       @echo $(distdir)
-EOF
-assign distdir $(make -f find-distdir.mk print-distdir)
-
-## Get a tarball distribution.
-case "$distcheck" in
-  yes)
-    run make distcheck
-    ;;
-  no)
-    run make dist
-    ;;
-esac
-
-cd $releasepath
-
-if ! tar tfz $buildpath/$distdir.tar.gz | grep -q RELEASE; then
-  fail "missing RELEASE file in distribution"
-fi
-
-run mv $buildpath/$distdir.tar.gz .
-
-## Maybe build the Debian packages.
-case "$debian,$(yesno [ -d $srcpath/debian ])" in
-  yes,no)
-    info "No debian directory found."
-    debian=no
-    ;;
-  yes,yes)
-    run tar xvfz $distdir.tar.gz
-    cd $distdir
-    run dpkg-buildpackage -k$(mdw-conf releasekey)
-    ;;
-esac
-
-## Maybe upload Debian packages.
-cd $releasepath
-case "$upload,$build" in
-  yes,test)
-    info "Test build: not uploading."
-    ;;
-  yes,release)
-    run rsync $distdir.tar.gz \
-      $(mdw-conf upload-target metalzone.distorted.org.uk:/home/ftp/pub/mdw/)
-    case "$debian" in
-      yes)
-       run dput -f $(mdw-conf dput-target metalzone) *.changes
-       ;;
-    esac
-esac
-
-## Tidy up.
-case "$clean" in
-  yes)
-    rm -rf $releasepath/$distdir
-    rm -rf $releasepath/_source
-    rm -rf $releasepath/_build
-    ;;
-esac
-
-## Done.
-info "All OK."
-
-###----- That's all, folks --------------------------------------------------