Files
2026-08-14 11:33:01 +02:00

78 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
set -eu
cd "$(dirname "$0")/.."
ARCH="${1:-arm64}"
case "$ARCH" in
amd64)
PLATFORM="linux/amd64"
;;
arm64)
PLATFORM="linux/arm64"
;;
arm)
PLATFORM="linux/arm/v7"
;;
*)
echo "usage: $0 [amd64|arm64|arm]" >&2
exit 2
;;
esac
TAG="routeros-suricata-tzsp:${ARCH}"
OUT="build/routeros-suricata-tzsp-${ARCH}.tar"
SHA="${OUT}.sha256"
mkdir -p build
# podman save with the docker-archive transport refuses to modify an
# existing archive. Remove artifacts from a previous build before exporting.
rm -f "$OUT" "$SHA"
if [ -n "${ENGINE:-}" ]; then
engine="$ENGINE"
elif command -v podman >/dev/null 2>&1; then
engine=podman
elif command -v docker >/dev/null 2>&1; then
engine=docker
else
echo "Docker or Podman is required" >&2
exit 3
fi
echo "[build] engine=$engine platform=$PLATFORM image=$TAG"
case "$engine" in
podman)
podman build --pull --platform "$PLATFORM" -t "$TAG" .
podman save -o "$OUT" "$TAG"
;;
docker)
if ! docker buildx version >/dev/null 2>&1; then
echo "Docker Buildx is required for RouterOS cross-architecture builds" >&2
exit 4
fi
docker buildx build \
--pull \
--platform "$PLATFORM" \
--provenance=false \
--load \
-t "$TAG" \
.
docker save -o "$OUT" "$TAG"
;;
*)
echo "unsupported ENGINE=$engine (use docker or podman)" >&2
exit 5
;;
esac
if command -v sha256sum >/dev/null 2>&1; then
sha256sum "$OUT" > "$SHA"
elif command -v shasum >/dev/null 2>&1; then
shasum -a 256 "$OUT" > "$SHA"
fi
printf '[build] created %s\n' "$OUT"
ls -lh "$OUT"
[ ! -f "$SHA" ] || cat "$SHA"