#!/usr/bin/env bash
# On the LXC TFTP server, replace the serial-specific cmdline with one that has
# provisioning_rescue=1 so the device drops to a shell and can run /rescue-eeprom.sh.
# Usage: ./enable-rescue-cmdline-on-lxc.sh [LXC_HOST] [SERIAL]
# Example: ./enable-rescue-cmdline-on-lxc.sh root@10.20.30.153 0d1ddbda

set -e
LXC="${1:-root@10.20.30.153}"
SERIAL="${2:-0d1ddbda}"

echo "Enabling rescue cmdline for serial $SERIAL on $LXC ..."
ssh "$LXC" "bash -s" "$SERIAL" << 'REMOTE'
SERIAL="$1"
CD="/srv/tftpboot/$SERIAL"
ROOT_CMDLINE="/srv/tftpboot/cmdline.txt"
if [[ ! -d "$CD" ]]; then
  echo "Error: $CD does not exist. Create the serial dir first (see NETWORK-BOOT-TROUBLESHOOTING.md)."
  exit 1
fi
rm -f "$CD/cmdline.txt"
# One line: root cmdline + space + provisioning_rescue=1
( cat "$ROOT_CMDLINE" 2>/dev/null | tr -d '\n'; echo -n ' provisioning_rescue=1' ) > "$CD/cmdline.txt"
echo "Rescue cmdline written to $CD/cmdline.txt"
echo "Reboot the device; from the rescue shell run: /rescue-eeprom.sh"
REMOTE
echo "Done. Reboot the reTerminal; then run /rescue-eeprom.sh in the rescue shell."
