chiark / gitweb /
Merge branch 'master' of metalzone:etc/profile
authorMark Wooding <mdw@distorted.org.uk>
Sat, 27 Dec 2008 14:08:58 +0000 (14:08 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 27 Dec 2008 14:08:58 +0000 (14:08 +0000)
* 'master' of metalzone:etc/profile:
  unstg
  Whitespace fixing.
  gitconfig: Fix release alias; add whitespace checking.
  mdw-build: Bring into the fold.
  bash_profile: Fix proxy snafu.

bash_profile
fonts.conf
gitconfig
hyperspec
mdw-build [new file with mode: 0755]
setup

index f2b0d38e2fcf33b365c6ad161c43259f59906fed..f0ca782426b10f97ad0862c7bbe33619b129418f 100644 (file)
@@ -160,13 +160,13 @@ export PERL_READLINE_NOWARN=yes
 http=`mdw-conf http-proxy none`
 case "${http_proxy-none},$http" in
   *,none) ;;
-  none,*) export http_proxy=$http ;;
+  none,*) export http_proxy=http://$http/ ;;
 esac
 ftp=`mdw-conf ftp-proxy none`
 case "${ftp_proxy-none},$ftp,${http_proxy-none}" in
   *,none,none) ;;
   none,none,*) export ftp_proxy=$http_proxy ;;
-  none,*,*) export ftp_proxy=$ftp ;;
+  none,*,*) export ftp_proxy=http://$ftp/ ;;
 esac
 
 export XUSERFILESEARCHPATH="$HOME/.Xapps/%N:/usr/lib/X11/%T/%N%S"
index 692719659b1f808d8b2b645ec11f091121c095f1..c7504cf33a767079f0f12a718f018fe6953d4936 100644 (file)
@@ -4,7 +4,7 @@
 <fontconfig>
 
   <!-- Hacking for the fixed font.
-    
+
        After many half-hearted attempts to make this work properly, I'm
        finally settling on this approach: define MiscFixed6x13 as a
        magic name for the right font, and then hack configuration files
@@ -34,7 +34,7 @@
   </match>
 
   <!-- Hacking for the symbol font.
-    
+
        This seems to be necessary to get Iceweasel/Firefox to do the
        right thing with MathML and suchlike.
     -->
@@ -46,7 +46,7 @@
   </match>
 
   <!-- KDE put this here, but it seems worthwhile.
-    
+
        Modified so as to force slight hinting rather than medium,
        because that actually seems to produce more legible characters.
     -->
index 9a891fcf5500a1220eb17f96eb5b54e036425507..1f002ca673f4f84be943ffcb40cf87958719059c 100644 (file)
--- a/gitconfig
+++ b/gitconfig
@@ -1,3 +1,6 @@
+### -*-conf-*-
+### Git configuration
+
 [core]
        filemode = true
        excludesfile = @gitignore@
        patch = "format-patch -o p -s"
        release = !"sh -e -c ' \
                [ $# -gt 0 ] || { \
-                 echo >&2 \"usage: git release [OPTS] TAG\"; \
+                 echo >&2 \"usage: git release TAG [OPTS]\"; \
                  exit 1; \
                }; \
-               ver=$(eval echo \"\\$$#\"); \
-               git tag -as -m \"Release $ver.\" \"$@\"' release"
+               git tag -as -m \"Release $1.\" \"$@\"' release"
        amend = !"env EDITOR=true VISUAL=true git commit --amend -a"
+       spaces = !"sh -e -c 'git ls-files -z \"$@\"| \
+               xargs -0r space -cv' spaces"
        mailto = "send-email \
                        --quiet \
                        --no-chain-reply-to \
                        --no-signed-off-by-cc \
                        --to"
        files = "ls-files --exclude-standard"
+       unstg = !"sh -e -c ' \
+               : ${GIT_DIR=$(git rev-parse --git-dir)}; \
+               if [ $# -eq 0 ]; then set -- \"$(stg branch)\"; fi; \
+               for branch; do \
+                 rmdir \"$GIT_DIR/patches/$branch/patches\"; \
+                 rm -rf \"$GIT_DIR/patches/$branch\"; \
+                 git for-each-ref -s \
+                   --format \"git update-ref -d %(refname) %(objectname)\" \
+                   \"refs/patches/$branch\" \"refs/bases/$branch\" | \
+                   sh -e; \
+               done' unstg"
 
 [stgit]
        autoresolved = yes
index 912a83b39a516c576897cf0c514d933aac788512..9f902fe5cfb2d6f39ac94d00e4285818d4dc7767 100755 (executable)
--- a/hyperspec
+++ b/hyperspec
@@ -90,7 +90,7 @@
             (obarray (cadr lookup))
             (format (car (cddr lookup)))
             (symbol (intern-soft name obarray)))
-       (when (and symbol (boundp symbol))
+       (when (and symbol (boundp symbol))
          (setq urls (nconc urls
                            (funcall format (symbol-value symbol)))))))
     urls))
diff --git a/mdw-build b/mdw-build
new file mode 100755 (executable)
index 0000000..903db37
--- /dev/null
+++ b/mdw-build
@@ -0,0 +1,260 @@
+#! /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)
+    cp $distdir.tar.gz /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 --------------------------------------------------
diff --git a/setup b/setup
index da71b34dc1cb69568d022364c4d2d59a78045128..15292b6841a973aa415dcdd529a272930ace758d 100755 (executable)
--- a/setup
+++ b/setup
@@ -187,6 +187,7 @@ echo " done."
 scripts="
   mdw-editor
   mdw-conf
+  mdw-build
   movemail-hack
   emerge-hack
   lesspipe.sh