42 lines
1.5 KiB
Bash
42 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
OUT_DIR="$ROOT_DIR/dist"
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
APP_NAME="qr-scanner"
|
|
OUT_WIN_EXE="$OUT_DIR/${APP_NAME}.exe"
|
|
OUT_MAC_AMD64="$OUT_DIR/${APP_NAME}-macos-amd64"
|
|
OUT_MAC_ARM64="$OUT_DIR/${APP_NAME}-macos-arm64"
|
|
OUT_LINUX_AMD64="$OUT_DIR/${APP_NAME}-linux-amd64"
|
|
OUT_LINUX_ARM64="$OUT_DIR/${APP_NAME}-linux-arm64"
|
|
|
|
echo "Building Windows exe -> $OUT_WIN_EXE"
|
|
|
|
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 \
|
|
go build -trimpath -ldflags "-s -w" -o "$OUT_WIN_EXE" .
|
|
|
|
echo "Building macOS (amd64) -> $OUT_MAC_AMD64"
|
|
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 \
|
|
go build -trimpath -ldflags "-s -w" -o "$OUT_MAC_AMD64" .
|
|
|
|
echo "Building macOS (arm64) -> $OUT_MAC_ARM64"
|
|
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 \
|
|
go build -trimpath -ldflags "-s -w" -o "$OUT_MAC_ARM64" .
|
|
|
|
echo "Building Linux (amd64) -> $OUT_LINUX_AMD64"
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
|
|
go build -trimpath -ldflags "-s -w" -o "$OUT_LINUX_AMD64" .
|
|
|
|
echo "Building Linux (arm64) -> $OUT_LINUX_ARM64"
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \
|
|
go build -trimpath -ldflags "-s -w" -o "$OUT_LINUX_ARM64" .
|
|
|
|
echo "Done."
|
|
echo "Windows: double-click ${APP_NAME}.exe (auto opens http://localhost:8001/)"
|
|
echo "macOS: chmod +x ${APP_NAME}-macos-* && ./${APP_NAME}-macos-arm64 (or amd64) (auto opens http://localhost:8001/)"
|
|
echo "Linux: chmod +x ${APP_NAME}-linux-* && ./${APP_NAME}-linux-amd64 (or arm64) (auto opens http://localhost:8001/)"
|