#!/usr/bin/env bash
# fs-diff.sh
# run on server.
set -euo pipefail

MOUNTPOINT=/mnt

if [[ ! -d $MOUNTPOINT ]]; then
    sudo mkdir $MOUNTPOINT
fi

if !(mountpoint $MOUNTPOINT > /dev/null); then
        sudo mount -t btrfs /dev/disk/by-label/NIXROOT $MOUNTPOINT
fi

OLD_TRANSID=$(sudo btrfs subvolume find-new $MOUNTPOINT/root-blank 9999999)
OLD_TRANSID=${OLD_TRANSID#transid marker was }

sudo btrfs subvolume find-new "$MOUNTPOINT/root" "$OLD_TRANSID" |
sed '$d' |
cut -f17- -d' ' |
sort |
uniq |
while read path; do
  path="/$path"
  if [ -L "$path" ]; then
    : # The path is a symbolic link, so is probably handled by NixOS already
  elif [ -d "$path" ]; then
    : # The path is a directory, ignore
  else
    echo "$path"
  fi
done
