#!/usr/bin/env bash

set -Eeuo pipefail

printf '%s\n' "$*" >> "$MOCK_VAGRANT_LOG"
case "${1:-}" in
  up)
    if [[ -n "${MOCK_VAGRANTFILE_CAPTURE:-}" ]]; then
      cp -- "$VAGRANT_CWD/Vagrantfile" "$MOCK_VAGRANTFILE_CAPTURE"
    fi
    counter_file="$MOCK_VBOX_STATE/counter"
    counter=0
    [[ ! -r "$counter_file" ]] || counter="$(cat "$counter_file")"
    counter=$((counter + 1))
    printf '%s\n' "$counter" > "$counter_file"
    uuid="00000000-0000-4000-8000-$(printf '%012d' "$counter")"
    vm_dir="$MOCK_VBOX_ROOT/master-$counter"
    mkdir -p -- "$vm_dir"
    : > "$vm_dir/master.vbox"
    : > "$vm_dir/master.vdi"
    printf '%s\n' \
      'VMState="poweroff"' \
      'groups="/"' \
      "CfgFile=\"$vm_dir/master.vbox\"" \
      "SATA-0-0=\"$vm_dir/master.vdi\"" > "$MOCK_VBOX_STATE/vm-$uuid"
    printf '%s\n' "$uuid" > "$MOCK_BOX_DIR/master_id"
    ;;
  destroy) ;;
  *) exit 2 ;;
esac
