#!/bin/sh
set -eu
: "${LIMA_INSTANCE:=apptainer}"
: "${APPTAINER_BINDPATH:=}"

if [ "$(limactl ls -q "$LIMA_INSTANCE" 2>/dev/null)" != "$LIMA_INSTANCE" ]; then
  echo "instance \"$LIMA_INSTANCE\" does not exist, run \`limactl create --name=$LIMA_INSTANCE template:apptainer\` to create a new instance" >&2
  exit 1
elif [ "$(limactl ls -f '{{ .Status }}' "$LIMA_INSTANCE" 2>/dev/null)" != "Running" ]; then
  echo "instance \"$LIMA_INSTANCE\" is not running, run \`limactl start $LIMA_INSTANCE\` to start the existing instance" >&2
  exit 1
fi
export LIMA_INSTANCE
if [ -n "$APPTAINER_BINDPATH" ]; then
  APPTAINER_BINDPATH="$APPTAINER_BINDPATH,"
fi
APPTAINER_BINDPATH="$APPTAINER_BINDPATH$HOME"
exec lima APPTAINER_BINDPATH="$APPTAINER_BINDPATH" apptainer "$@"
