47 lines
1.0 KiB
Bash
Executable File
47 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
DIST_DIR="dist"
|
|
rm -rf "$DIST_DIR"
|
|
mkdir -p "$DIST_DIR"
|
|
|
|
PLATFORMS=(
|
|
# "darwin/amd64"
|
|
"darwin/arm64"
|
|
# "linux/amd64"
|
|
# "linux/arm64"
|
|
# "linux/arm/7"
|
|
# "windows/amd64"
|
|
# "windows/arm64"
|
|
# "freebsd/amd64"
|
|
# "freebsd/arm64"
|
|
)
|
|
|
|
for platform in "${PLATFORMS[@]}"; do
|
|
goos=$(echo "$platform" | cut -d'/' -f1)
|
|
goarch=$(echo "$platform" | cut -d'/' -f2)
|
|
goarm=""
|
|
if [[ "$goarch" == "arm" ]]; then
|
|
goarm=$(echo "$platform" | cut -d'/' -f3)
|
|
fi
|
|
|
|
output_name="gocoder-${goos}-${goarch}"
|
|
if [[ -n "$goarm" ]]; then
|
|
output_name="${output_name}v${goarm}"
|
|
fi
|
|
if [[ "$goos" == "windows" ]]; then
|
|
output_name="${output_name}.exe"
|
|
fi
|
|
|
|
echo "Building for ${goos}/${goarch} -> ${output_name}"
|
|
if [[ -n "$goarm" ]]; then
|
|
env GOOS="$goos" GOARCH="$goarch" GOARM="$goarm" go build -o "$DIST_DIR/$output_name" .
|
|
else
|
|
env GOOS="$goos" GOARCH="$goarch" go build -o "$DIST_DIR/$output_name" .
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "Build complete. Files in $DIST_DIR:"
|
|
ls -lh "$DIST_DIR"
|