Skip to content

Commit

Permalink
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 12 deletions.
4 changes: 2 additions & 2 deletions build/build-all.inc.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
builds=('linux 386' 'linux amd64' 'linux arm' 'linux arm64' 'linux riscv64' 'linux loong64')
builds=("${builds[@]}" 'windows 386' 'windows amd64' 'windows arm' 'windows arm64')
builds=('linux 386' 'linux amd64' 'linux amd64,v2' 'linux amd64,v3' 'linux arm' 'linux arm64' 'linux riscv64' 'linux loong64')
builds=("${builds[@]}" 'windows 386' 'windows amd64' 'windows amd64,v2' 'windows amd64,v3' 'windows arm' 'windows arm64')
builds=("${builds[@]}" 'darwin amd64' 'darwin arm64')
builds=("${builds[@]}" 'freebsd 386' 'freebsd amd64' 'freebsd arm' 'freebsd arm64')
builds=("${builds[@]}" 'openbsd 386' 'openbsd amd64' 'openbsd arm' 'openbsd arm64')
Expand Down
8 changes: 7 additions & 1 deletion build/build-current.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,10 @@
cd $(dirname "$0")
rm -rf ../output/

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

bash ./build.sh "$(go env GOOS) ${GOARCH}${ARCH_OPT}"
2 changes: 1 addition & 1 deletion build/build-docker-image-dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ ENV GO111MODULE=auto
COPY .git/ /mnt/ghfs/.git/
COPY src/ /mnt/ghfs/src/
COPY build/ /mnt/ghfs/build/
RUN ["/bin/bash", "-c", "cd /mnt/ghfs/build/; source ./build.inc.sh; go build -ldflags \"$LDFLAGS\" -o /tmp/ghfs /mnt/ghfs/src/main.go"]
RUN ["/bin/bash", "-c", "cd /mnt/ghfs/build/; source ./build.inc.sh; go build -ldflags \"$(getLdFlags)\" -o /tmp/ghfs /mnt/ghfs/src/main.go"]
RUN mkdir -p /output/usr/local/bin/; cp /tmp/ghfs /output/usr/local/bin/;
COPY conf/docker-image/ /output/

Expand Down
4 changes: 3 additions & 1 deletion build/build.inc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,7 @@ OUTDIR='../output'
MAINNAME='ghfs'
MOD=$(go list ../src/)
source ./build.inc.version.sh
LDFLAGS="-s -w -X $MOD/version.appVer=$VERSION"
LICENSE='../LICENSE'
getLdFlags() {
echo "-s -w -X $MOD/version.appVer=$VERSION -X $MOD/version.appArch=${ARCH:-$(go env GOARCH)}"
}
17 changes: 13 additions & 4 deletions build/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,23 @@ mkdir -p "$OUTDIR"
for build in "$@"; do
arg=($build)
export GOOS="${arg[0]}"
export GOARCH="${arg[1]}"
ARCH="${arg[1]}" # e.g. "amd64" or "amd64,v2"
GOARCH=${ARCH%,*}
if [ "$ARCH" != "$GOARCH" ]; then
# e.g. "GOAMD64=v2"
ARCH_OPT="${ARCH#*,}"
declare -x $(echo GO$GOARCH | tr 'a-z' 'A-Z')="$ARCH_OPT"
else
ARCH_OPT=''
unset $(echo "GO$GOARCH" | tr 'a-z' 'A-Z')
fi
OS_SUFFIX="${arg[2]}"

BIN="$TMP/$MAINNAME$(go env GOEXE)"
rm -f "$BIN"
echo "Building: $GOOS$OS_SUFFIX $GOARCH"
go build -ldflags "$LDFLAGS" -o "$BIN" ../src/main.go
echo "Building: $GOOS$OS_SUFFIX $ARCH"
go build -ldflags "$(getLdFlags)" -o "$BIN" ../src/main.go

OUT="$OUTDIR/$MAINNAME-$VERSION-$GOOS$OS_SUFFIX-$GOARCH".zip
OUT="$OUTDIR/$MAINNAME-$VERSION-$GOOS$OS_SUFFIX-$GOARCH$ARCH_OPT".zip
zip -j "$OUT" "$BIN" "$LICENSE"
done
7 changes: 4 additions & 3 deletions src/version/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ import (
"runtime"
)

var appVer = "dev"

const entryFormat = "%-8s %s\n"

var appVer = "dev"
var appArch = runtime.GOARCH

func PrintVersion() {
fmt.Println("GHFS: Go HTTP File Server")
fmt.Printf(entryFormat, "Version:", appVer)
fmt.Printf(entryFormat, "SDK:", runtime.Version())
fmt.Printf(entryFormat, "OS:", runtime.GOOS)
fmt.Printf(entryFormat, "ARCH:", runtime.GOARCH)
fmt.Printf(entryFormat, "ARCH:", appArch)
}

0 comments on commit de1749f

Please sign in to comment.