#!/bin/bash

FSCONF=/etc/fs.conf

FSTAB=/etc/fstab
CHR_FST=/etc/fstab-chr.d

if ! [ -f $FSCONF ]; then
	echo "No $FSCONF file found, exiting."
	exit 0
fi

if ! [ -d $CHR_FST ]; then
	echo "No $CHR_FST dir found, exiting."
	exit 0
fi

. ${FSCONF}


function get_fs_vars()
{
	FS_VARS=`grep -h -o '^[[:space:]]*%FS_[^%]*%' ${CHR_FST}/* |sort |uniq | tr -d '%'`

	for FS_VAR in ${FS_VARS}; do
		mounted_to=`grep -h "%$FS_VAR%" ${CHR_FST}/* |awk '{print $2}' |sort |uniq`
		for mt in $mounted_to; do
			mounted_from=`grep -E "[[:space:]]+${mt}[[:space:]]+" /etc/fstab |awk '{print $1}'`
			if [ -n "$mounted_from" ]; then
				for mf in ${mounted_from}; do
					if ! (grep "^[[:space:]]*${FS_VAR}=${mf}\$" ${FSCONF} >/dev/null); then
						echo "#${FS_VAR}=${mf}"
#					else
#						echo "### OK ${FS_VAR}"
					fi
				done
			else
				echo "#${FS_VAR}=???"
			fi
		done
	done
}

echo "#Differences between current ${FSTAB} and ${FSCONF}:"
get_fs_vars |sort |uniq

