#!/bin/sh
ROOTDEV="/dev/$(lsblk -no pkname $(mount | sed -n '\: on / :{s:^\(.*\) on.*$:\1:;p;q}'))"
if [ ! -e "$ROOTDEV" ]; then
  echo "Root device unknown"
  exit 1
fi
case "$1" in
  a)
    echo "Selecting Boot A"
    sfdisk -A ${ROOTDEV} 1
    ;;
  b)
    echo "Selecting Boot B"
    sfdisk -A ${ROOTDEV} 2
    ;;
  switch)
    CUR="$(sfdisk -A ${ROOTDEV})"
    if [ "x$CUR" = "x${ROOTDEV}p2" ]; then
      echo "Switching from Boot B to A"
      sfdisk -A ${ROOTDEV} 1
    elif [ "x$CUR" = "x${ROOTDEV}p1" ]; then
      echo "Switching from Boot A to B"
      sfdisk -A ${ROOTDEV} 2
    else
      echo "Neither selected. Selecting Boot A"
      sfdisk -A ${ROOTDEV} 2
    fi
    ;;
  query)
    case "$(sfdisk -A ${ROOTDEV})" in
      ${ROOTDEV}p1) echo A ;;
      ${ROOTDEV}p2) echo B ;;
                   *) echo Unknown ;;
    esac
    ;;
  *)
    echo "Usage: $0 a|b|switch|query"
    ;;
esac
