qr-scanner/deploy.sh

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/)"