1+ # Using @tidwall's shell script
2+ #! /bin/bash
3+ set -e
4+
5+ VERSION=" 1.0.1"
6+ PROTECTED_MODE=" no"
7+
8+ export GO15VENDOREXPERIMENT=1
9+
10+ cd $( dirname " ${BASH_SOURCE[0]} " )
11+ OD=" $( pwd) "
12+ WD=$OD
13+
14+ package () {
15+ echo Packaging $1 Binary
16+ bdir=triangle-${VERSION} -$2 -$3
17+ rm -rf packages/$bdir && mkdir -p packages/$bdir
18+ GOOS=$2 GOARCH=$3 ./build.sh
19+ if [ " $2 " == " windows" ]; then
20+ mv triangle packages/$bdir /triangle.exe
21+ else
22+ mv triangle packages/$bdir
23+ fi
24+ cp README.md packages/$bdir
25+ cd packages
26+ if [ " $2 " == " linux" ]; then
27+ tar -zcf $bdir .tar.gz $bdir
28+ else
29+ zip -r -q $bdir .zip $bdir
30+ fi
31+ rm -rf $bdir
32+ cd ..
33+ }
34+
35+ if [ " $1 " == " package" ]; then
36+ rm -rf packages/
37+ package " Windows" " windows" " amd64"
38+ package " Mac" " darwin" " amd64"
39+ package " Linux" " linux" " amd64"
40+ package " FreeBSD" " freebsd" " amd64"
41+ exit
42+ fi
43+
44+ # temp directory for storing isolated environment.
45+ TMP=" $( mktemp -d -t sdb.XXXX) "
46+ rmtemp () {
47+ rm -rf " $TMP "
48+ }
49+ trap rmtemp EXIT
50+
51+ if [ " $NOCOPY " != " 1" ]; then
52+ # copy all files to an isloated directory.
53+ WD=" $TMP /src/github.com/esimov/triangle"
54+ export GOPATH=" $TMP "
55+ for file in ` find . -type f` ; do
56+ # TODO: use .gitignore to ignore, or possibly just use git to determine the file list.
57+ if [[ " $file " != " ." && " $file " != ./.git* && " $file " != ./triangle ]]; then
58+ mkdir -p " $WD /$( dirname " ${file} " ) "
59+ cp -P " $file " " $WD /$( dirname " ${file} " ) "
60+ fi
61+ done
62+ cd $WD
63+ fi
64+
65+ # build and store objects into original directory.
66+ go build -ldflags " -X main.version=$VERSION " -o " $OD /triangle" cmd/triangle/* .go
0 commit comments