Skip to content

File tree

6 files changed

+30
-12
lines changed

6 files changed

+30
-12
lines changed

build/build-all.inc.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
builds=('linux 386' 'linux amd64' 'linux arm' 'linux arm64' 'linux riscv64' 'linux loong64')
2-
builds=("${builds[@]}" 'windows 386' 'windows amd64' 'windows arm' 'windows arm64')
1+
builds=('linux 386' 'linux amd64' 'linux amd64,v2' 'linux amd64,v3' 'linux arm' 'linux arm64' 'linux riscv64' 'linux loong64')
2+
builds=("${builds[@]}" 'windows 386' 'windows amd64' 'windows amd64,v2' 'windows amd64,v3' 'windows arm' 'windows arm64')
33
builds=("${builds[@]}" 'darwin amd64' 'darwin arm64')
44
builds=("${builds[@]}" 'freebsd 386' 'freebsd amd64' 'freebsd arm' 'freebsd arm64')
55
builds=("${builds[@]}" 'openbsd 386' 'openbsd amd64' 'openbsd arm' 'openbsd arm64')

build/build-current.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,10 @@
33
cd $(dirname "$0")
44
rm -rf ../output/
55

6-
bash ./build.sh "$(go env GOOS) $(go env GOARCH)"
6+
GOARCH=$(go env GOARCH)
7+
ARCH_OPT_NAME=$(echo "GO$GOARCH" | tr 'a-z' 'A-Z')
8+
if [ -n "${!ARCH_OPT_NAME}" ]; then
9+
ARCH_OPT=",${!ARCH_OPT_NAME}"
10+
fi
11+
12+
bash ./build.sh "$(go env GOOS) ${GOARCH}${ARCH_OPT}"

build/build-docker-image-dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ ENV GO111MODULE=auto
33
COPY .git/ /mnt/ghfs/.git/
44
COPY src/ /mnt/ghfs/src/
55
COPY build/ /mnt/ghfs/build/
6-
RUN ["/bin/bash", "-c", "cd /mnt/ghfs/build/; source ./build.inc.sh; go build -ldflags \"$LDFLAGS\" -o /tmp/ghfs /mnt/ghfs/src/main.go"]
6+
RUN ["/bin/bash", "-c", "cd /mnt/ghfs/build/; source ./build.inc.sh; go build -ldflags \"$(getLdFlags)\" -o /tmp/ghfs /mnt/ghfs/src/main.go"]
77
RUN mkdir -p /output/usr/local/bin/; cp /tmp/ghfs /output/usr/local/bin/;
88
COPY conf/docker-image/ /output/
99

build/build.inc.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@ OUTDIR='../output'
33
MAINNAME='ghfs'
44
MOD=$(go list ../src/)
55
source ./build.inc.version.sh
6-
LDFLAGS="-s -w -X $MOD/version.appVer=$VERSION"
76
LICENSE='../LICENSE'
7+
getLdFlags() {
8+
echo "-s -w -X $MOD/version.appVer=$VERSION -X $MOD/version.appArch=${ARCH:-$(go env GOARCH)}"
9+
}

build/build.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,23 @@ mkdir -p "$OUTDIR"
1010
for build in "$@"; do
1111
arg=($build)
1212
export GOOS="${arg[0]}"
13-
export GOARCH="${arg[1]}"
13+
ARCH="${arg[1]}" # e.g. "amd64" or "amd64,v2"
14+
GOARCH=${ARCH%,*}
15+
if [ "$ARCH" != "$GOARCH" ]; then
16+
# e.g. "GOAMD64=v2"
17+
ARCH_OPT="${ARCH#*,}"
18+
declare -x $(echo GO$GOARCH | tr 'a-z' 'A-Z')="$ARCH_OPT"
19+
else
20+
ARCH_OPT=''
21+
unset $(echo "GO$GOARCH" | tr 'a-z' 'A-Z')
22+
fi
1423
OS_SUFFIX="${arg[2]}"
1524

1625
BIN="$TMP/$MAINNAME$(go env GOEXE)"
1726
rm -f "$BIN"
18-
echo "Building: $GOOS$OS_SUFFIX $GOARCH"
19-
go build -ldflags "$LDFLAGS" -o "$BIN" ../src/main.go
27+
echo "Building: $GOOS$OS_SUFFIX $ARCH"
28+
go build -ldflags "$(getLdFlags)" -o "$BIN" ../src/main.go
2029

21-
OUT="$OUTDIR/$MAINNAME-$VERSION-$GOOS$OS_SUFFIX-$GOARCH".zip
30+
OUT="$OUTDIR/$MAINNAME-$VERSION-$GOOS$OS_SUFFIX-$GOARCH$ARCH_OPT".zip
2231
zip -j "$OUT" "$BIN" "$LICENSE"
2332
done

src/version/main.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ import (
55
"runtime"
66
)
77

8-
var appVer = "dev"
9-
108
const entryFormat = "%-8s %s\n"
119

10+
var appVer = "dev"
11+
var appArch = runtime.GOARCH
12+
1213
func PrintVersion() {
1314
fmt.Println("GHFS: Go HTTP File Server")
1415
fmt.Printf(entryFormat, "Version:", appVer)
1516
fmt.Printf(entryFormat, "SDK:", runtime.Version())
1617
fmt.Printf(entryFormat, "OS:", runtime.GOOS)
17-
fmt.Printf(entryFormat, "ARCH:", runtime.GOARCH)
18+
fmt.Printf(entryFormat, "ARCH:", appArch)
1819
}

0 commit comments

Comments
 (0)