2025-02-03 17:19:22 -06:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
# fs-diff.sh
|
|
|
|
|
# run on server.
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
2025-02-04 14:05:17 -06:00
|
|
|
MOUNTPOINT=/mnt
|
|
|
|
|
|
|
|
|
|
if [[ ! -d $MOUNTPOINT ]]; then
|
|
|
|
|
sudo mkdir $MOUNTPOINT
|
2025-02-03 17:19:22 -06:00
|
|
|
fi
|
|
|
|
|
|
2025-02-04 14:05:17 -06:00
|
|
|
if !(mountpoint $MOUNTPOINT > /dev/null); then
|
|
|
|
|
sudo mount -t btrfs /dev/disk/by-label/NIXROOT $MOUNTPOINT
|
2025-02-03 17:19:22 -06:00
|
|
|
fi
|
|
|
|
|
|
2025-02-04 14:05:17 -06:00
|
|
|
OLD_TRANSID=$(sudo btrfs subvolume find-new $MOUNTPOINT/root-blank 9999999)
|
2025-02-03 17:19:22 -06:00
|
|
|
OLD_TRANSID=${OLD_TRANSID#transid marker was }
|
|
|
|
|
|
2025-02-04 14:05:17 -06:00
|
|
|
sudo btrfs subvolume find-new "$MOUNTPOINT/root" "$OLD_TRANSID" |
|
2025-02-03 17:19:22 -06:00
|
|
|
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
|