#!/usr/bin/env bash

## Write my latest local backup to a BD-R using xorriso.
##
## Usage: backup-burn
##
## Dependencies: GNU coreutils, GNU sed, util-linux, xorriso
##
## All my files fit onto a 25GB BD-R because I rarely keep photos and videos.

set -euo pipefail
shopt -s inherit_errexit dotglob globstar

die() { echo "${0##*/}: $1" >&2; exit 1; }

[[ " $* " =~ ' --help ' ]] && sed -n 's/^## \?//p' "$0" && exit
(( $# )) && die 'invalid argument'
(( UID )) && die 'must be run as root'

backup=$(realpath /media/wd-25e2-2tb-2/backups/latest)

# Write backup to BD-R.
xorriso -outdev /dev/sr0 -map "$backup" /

# Print confirmation message.
eject; eject -t # This is required to mount. Why?
mount /media/cdrom
dest_count=$(printf '%s\n' /media/cdrom/** | wc -l)
source_count=$(printf '%s\n' "$backup"/** | wc -l)
echo "Wrote $dest_count of $source_count files."

umount /media/cdrom
eject
