-
-
Notifications
You must be signed in to change notification settings - Fork 34
/
build.sh
58 lines (50 loc) · 1.23 KB
/
build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash
set -e
VERSION="1.0.5"
PROTECTED_MODE="no"
export GO15VENDOREXPERIMENT=1
cd $(dirname "${BASH_SOURCE[0]}")
OD="$(pwd)"
WD=$OD
package() {
echo Packaging $1 Binary
BUILD_DIR=diagram-${VERSION}-$2-$3
rm -rf packages/$BUILD_DIR && mkdir -p packages/$BUILD_DIR
GOOS=$2 GOARCH=$3 ./build.sh
mv diagram packages/$BUILD_DIR
cp README.md packages/$BUILD_DIR
cd packages
if [ "$2" == "linux" ]; then
tar -zcf $BUILD_DIR.tar.gz $BUILD_DIR
else
zip -r -q $BUILD_DIR.zip $BUILD_DIR
fi
rm -rf $BUILD_DIR
cd ..
}
if [ "$1" == "package" ]; then
rm -rf packages/
package "Linux" "linux" "amd64"
package "Mac" "darwin" "amd64"
exit
fi
# temp directory for storing isolated environment.
TMP="$(mktemp -d -t sdb.XXXX)"
rmtemp() {
rm -rf "$TMP"
}
trap rmtemp EXIT
if [ "$NOCOPY" != "1" ]; then
# copy all files to an isolated directory.
WD="$TMP/src/github.com/esimov/diagram"
export GOPATH="$TMP"
for file in `find . -type f`; do
if [[ "$file" != "." && "$file" != ./.git* && "$file" != ./diagram ]]; then
mkdir -p "$WD/$(dirname "${file}")"
cp -P "$file" "$WD/$(dirname "${file}")"
fi
done
cd $WD
fi
# build and store objects into original directory.
go build -ldflags "-X main.version=$VERSION" -o "$OD/diagram" *.go