chiark / gitweb /
0f565b5a95029965f69c4f6c141f1b932a1d2bd3
[jarrg-ian.git] / build-sh
1 #!/bin/bash
2 #
3 # We don't supply a Makefile.  Instead, we just supply this shell script.
4
5 set -e
6
7 case "$#.$1" in
8 0.)     ;;
9 *.-*)   echo >&2 'no options allowed'; exit 1;;
10 *)      echo >&2 'no arguments allowed'; exit 1;;
11 esac
12
13 : ${JAVA_HOME:=/usr/lib/jvm/java-8-openjdk-amd64}
14 export JAVA_HOME
15
16 revision=`git describe --always || echo '(unknown revision)'`
17 if [ x"`git diff 2>/dev/null || echo x`" != x ]; then
18         revision="$revision-local"
19 fi
20
21 cat >src/net/chiark/yarrg/Version.java <<END
22   package net.chiark.yarrg;
23   public class Version {
24       public final static String version = "$revision";
25   }
26 END
27 rm -f src/build/net/chiark/yarrg/Version.class
28 rm -f src/build/net/chiark/yarrg/ControlPanel.class
29 rm -f src/build/net/chiark/yarrg/MarketUploader.class
30 rm -f *.jar
31
32 cd src
33 ant -f Jarrg.xml
34 cd ..
35
36 echo "
37 Building tarballs
38 "
39
40 tarball () {
41         output=$1; shift
42         >"$output"; # avoids rsync seeing that . changed
43         GZIP='-9v --rsyncable' tar --exclude=\*{~,.tar.gz,.exe} --exclude='#*#' \
44           --transform='s/^./jarrg/' --exclude={src/build,tmp} "$@" \
45           -zcf "$output" .
46 }
47
48 tarball jarrg-source.tar.gz
49
50 tarball jarrg-linux.tar.gz \
51   --exclude={.git*,src,accessibility.properties,build-sh} \
52
53 files='jarrg-source.tar.gz jarrg-linux.tar.gz jarrg-setup.exe'
54
55 echo "
56 Generated OK:
57 "
58 ls -al $files
59
60 pubbase="${JARRG_PUBLISH_BASE-login.chiark.greenend.org.uk}"
61 pubdir="${JARRG_PUBLISH_DIR-/home/yarrgweb/public-html/download/jarrg}"
62
63 echo "
64 Revision: $revision
65
66 Install with:
67  RSYNC_RSH=ssh rsync -vP $files $pubbase:$pubdir/test/
68 "