74 lines
1.5 KiB
Bash
Executable File
74 lines
1.5 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
|
|
|
|
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"
|