#!/bin/bash
set -x
# scrub interval 3 days (in seconds)
SCRUBINTERVAL="259200"

function run_scrub {
	if [ "`/usr/bin/upower -i /org/freedesktop/UPower/devices/line_power_AC | /usr/bin/grep '^\s*online:' | /usr/bin/awk '{print $NF}'`" == "yes" ] ; then
		/usr/sbin/btrfs scrub start / 2>&1 >/dev/null && date +%s > /lastscrub
	fi
}

if [ -s /lastscrub ] ; then
	NOW=$(date +%s)
	LASTSCRUB=$(cat /lastscrub)
	if [ -n "${LASTSCRUB}" ] ; then
		SCRUBDIFF=$(expr ${NOW} - ${LASTSCRUB})
		if [ "${SCRUBDIFF}" -ge "${SCRUBINTERVAL}" ] ; then
			run_scrub
		else
			echo "Last scrub is $(expr ${SCRUBDIFF} / 3600) hours ago, skipping for now"
		fi
	else
		run_scrub
	fi
else
	run_scrub
fi
