#!@bash@/bin/bash
# shellcheck shell=bash
set -o errexit
set -o nounset
set -o pipefail

MACHINE=""
HOSTFWD=""

while getopts 'p:o:h' opt; do
  case "$opt" in
    p)
      HOSTFWD=",hostfwd=tcp::$OPTARG$HOSTFWD"
      ;;

    o)
      MACHINE="$OPTARG"
      ;;

    h|?)
      echo "Usage: $(basename "$0") [-p hostport-:guestport] -o MACHINE"
      exit 1
      ;;
  esac
done
shift "$((OPTIND -1))"

if [ -z "$MACHINE" ]; then echo "-o option needed"; exit 1; fi

DRV_PATH=$(@colmena@/bin/colmena eval --instantiate -E "{nodes, ...}: nodes.$MACHINE.config.system.build.vm")

echo "Realising $DRV_PATH"
RESULT=$(nix-store -r "$DRV_PATH")

echo "Built $RESULT, launching VM ..."

"$RESULT/bin/run-$MACHINE-vm" -device e1000,netdev=net0 -netdev "user,id=net0$HOSTFWD"