#!/usr/bin/env bash set -euo pipefail root="$(cd "$(dirname "$0")/.." && pwd)" cd "$root" assemblers="${1:-${ASSEMBLER:-nasm fasm}}" docker compose up -d >/dev/null docker compose exec -T -e ASMS="$assemblers" hdass bash -c ' set -e cd /hdass [ -d build-linux ] || meson setup build-linux >/dev/null meson compile -C build-linux >/dev/null cat > /tmp/sidebyside.awk <<"AWK" NR == FNR { left[FNR] = $0; if (length($0) > width) width = length($0); ln = FNR; next } { right[FNR] = $0; if (FNR > rn) rn = FNR } END { total = ln > rn ? ln : rn for (i = 1; i <= total; i += 1) printf "%-*s | %s\n", width, (i in left ? left[i] : ""), (i in right ? right[i] : "") } AWK for asm in $ASMS; do for src in examples/*.hdass; do printf "\n===== %s (%s) =====\n" "$(basename "$src")" "$asm" ./build-linux/hdass -t "$asm" "$src" -o /tmp/gen.asm awk -f /tmp/sidebyside.awk <(expand -t 4 "$src") <(expand -t 4 /tmp/gen.asm) done done '