#!/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 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"