#!/bin/bash

source /etc/profile

src=$1
dst=$2
opt=""

[ -z "$src" -o -z "$dst" ] && {
	echo "usage: $0 [src-dir] [dst-dir|1]\n"
	exit 1
}

src=$(readlink -f "$src")
btrfs subvolume show "$src" >/dev/null 2>&1
[ $? -ne 0 ] && {
	echo "[error]: $src is not a btrfs subvolume dir!"
	exit 1
}
if [ "$dst" = "1" ]; then
	PAR=`dirname "$src"`
	df-json | grep "${PAR}$" > /dev/null
	[ $? -ne 0 ] && {
		echo "[error]: ${PAR} is not mounted!"
		exit 1
	}
	dirname=`basename "$src"`
	dst="${PAR}/@snapshot/${dirname}"
	mkdir -m 777 -p $dst
	snapshotname=`date +'GMT%:::z-%Y.%m.%d-%H.%M.%S'`
	dst="${dst}/${snapshotname}"
	opt="-r"
fi

btrfs subvolume snapshot $opt "$src" "$dst" >/dev/null 2>&1

echo "[success]: snapshot complete!"
exit 0
