#!/usr/bin/env bash set -euo pipefail root="$(cd "$(dirname "$0")/.." && pwd)" cd "$root" if [ $# -lt 1 ]; then echo "usage: $(basename "$0") " >&2 exit 1 fi file="$1" name="$(basename "${file%.*}")" docker compose up -d >/dev/null docker compose exec -T -e SRC="$file" -e NAME="$name" hdass bash -c ' set -e cd /hdass [ -d build-linux ] || meson setup build-linux >/dev/null meson compile -C build-linux >/dev/null ./build-linux/hdass "$SRC" -o "/tmp/$NAME.asm" echo cat "/tmp/$NAME.asm" echo nasm -f elf64 "/tmp/$NAME.asm" -o "/tmp/$NAME.o" ld -e main "/tmp/$NAME.o" -o "/tmp/$NAME" set +e "/tmp/$NAME" printf "\n[exit %s]\n" "$?" '