Skip to content

Commit 7f45ea2

Browse files
committed
Include build script
1 parent 8a7efb3 commit 7f45ea2

3 files changed

Lines changed: 78 additions & 1 deletion

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
*.png
22
*.jpg
3-
!output/*
3+
!output/*
4+
packages/

Makefile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
all:
2+
@./build.sh
3+
clean:
4+
@rm -f triangle
5+
install: all
6+
@cp triangle /usr/local/bin
7+
uninstall:
8+
@rm -f /usr/local/bin/triangle
9+
package:
10+
@NOCOPY=1 ./build.sh package

build.sh

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
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

Comments
 (0)