-
Notifications
You must be signed in to change notification settings - Fork 0
/
make.bash
executable file
·73 lines (64 loc) · 2 KB
/
make.bash
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash
set -ex
cd "$(dirname "$0")"
PROJECT=liner
BUILDROOT=build
REVSION=$(git rev-list --count HEAD)
LDFLAGS="-s -w -X main.version=${REVSION}"
SOURCES="README.md china.pac autoindex.html example.yaml liner.sh"
GOOS=${GOOS:-$(go env GOOS)}
GOARCH=${GOARCH:-$(go env GOARCH)}
CGO_ENABLED=${CGO_ENABLED:-$(go env CGO_ENABLED)}
if [ "${GOOS}" == "windows" ]; then
SOURCES="README.md china.pac example.yaml"
BUILDDIR=${BUILDROOT}/${GOOS}_${GOARCH}
DISTFILE=${PROJECT}_${GOOS}_${GOARCH}-${REVSION}
GOEXE=.exe
elif [ "${GOOS}" == "darwin" ]; then
SOURCES="README.md china.pac example.yaml"
BUILDDIR=${BUILDROOT}/${GOOS}_${GOARCH}
DISTFILE=${PROJECT}_${GOOS}_${GOARCH}-${REVSION}
elif [ "${GOARCH:0:3}" == "arm" ]; then
if [ "$GOARCH" == "arm64" ]; then
BUILDDIR=${BUILDROOT}/${GOOS}_${GOARCH}
DISTFILE=${PROJECT}_${GOOS}_${GOARCH}-${REVSION}
else
BUILDDIR=${BUILDROOT}/${GOOS}_armv${GOARM}
DISTFILE=${PROJECT}_${GOOS}_armv${GOARM}-${REVSION}
fi
elif [ "${GOARCH:0:4}" == "mips" ]; then
if [ "$GOMIPS" == "softfloat" ]; then
BUILDDIR=${BUILDROOT}/${GOOS}_${GOARCH}_${GOMIPS}
DISTFILE=${PROJECT}_${GOOS}_${GOARCH}_${GOMIPS}-${REVSION}
else
BUILDDIR=${BUILDROOT}/${GOOS}_${GOARCH}
DISTFILE=${PROJECT}_${GOOS}_${GOARCH}-${REVSION}
fi
else
BUILDDIR=${BUILDROOT}/${GOOS}_${GOARCH}
DISTFILE=${PROJECT}_${GOOS}_${GOARCH}-${REVSION}
fi
build () {
# go build
mkdir -p ${BUILDDIR}
env GOOS=${GOOS} \
GOARCH=${GOARCH} \
CGO_ENABLED=${CGO_ENABLED} \
go build -v -trimpath -ldflags="${LDFLAGS}" -o ${BUILDDIR}/${PROJECT}${GOEXE} .
# go test
# go test -v .
# cp files
cp -r ${SOURCES} ${BUILDDIR}
# changelog
git log --oneline --pretty=format:"%h %s" -5 | tee ${BUILDDIR}/CHANGELOG
}
dist () {
pushd ${BUILDDIR}
env XZ_OPT=-9 tar cvJpf ../${DISTFILE}.tar.xz *
popd
}
clean () {
rm -rf ${BUILDDIR}
rmdir ${BUILDROOT} || true
}
for a in $@; do $a; done