#!/sbin/openrc-run

depend() {
	need fsck root
	use lvm modules
	after clock lvm modules
	before localmount
}

start() {
	local opt= rkos_id= fs_search=LABEL fs= dev= mountpoint=

	ebegin "Add RKOS mounts to fstab"

	# check if a RKOS install_id was provided
	for opt in $(cat /proc/cmdline 2>/dev/null); do
	        case "$opt" in
			rkos_id=*)
				rkos_id="@${opt#*=}"
				fs_search=PARTLABEL
				;;
		esac
	done

	# find and mount RKOS file systems
	rc=0
	for fs in rkos-sys-1 rkos-sys-2 rkos-cache rkos-config; do
		search="$fs_search=$fs$rkos_id"
		dev="$(findfs "$search")"
		if [ -n "$dev" ]; then
			while read mountpoint; do
				# umount and remove mountpoint directory if mounted in a directory at /media/
				[ "${mountpoint:0:6}" = "$(dirname "$mountpoint")" ] && umount "$mountpoint" 2> /dev/null && rmdir "$mountpoint" 2> /dev/null
			done < <(findmnt -rn -o target "$dev")
			sed -i -e '\@^'"$dev"'\s@d' -e '\@/media/'"$fs"'@d' /etc/fstab
			[ "$fs" != "rkos-cache" ] && fstype=vfat || fstype=ext4
			echo "$search	/media/$fs	$fstype	noatime,ro 0 0" >> /etc/fstab
		else
			if [ -n "$rkos_id" ]; then
				echo " Could no find filesystem $search"
				rc=1
			fi
		fi
	done

	eend $rc
}
