#!/bin/sh
# pre-mounting script
# called by /etc/default/mount-opts sourced by /etc/event.d/rcS-late
# (c) Copyright 2010 by Thomas Tanner <maemo@tannerlab.com>
# licensed under GPLv3
# version 0.2 (9. May 2010)
log=/etc/kernel-power/pre-mount.log

if test -f /etc/kernel-power/pre-mount.once; then
	# execute pre-mount script once
	mv /etc/kernel-power/pre-mount.once /etc/kernel-power/pre-mount.done
	date >> $log
	echo executing pre-mount.once >> $log
	sh /etc/kernel-power/pre-mount.done >> $log
	echo pre-mount.once was successfully executed >> $log
fi

fforce=/etc/kernel-power/force_fsck
#temporarly overwrite 0=off, 1=on
force=
if test -f $fforce; then
    force=`cat $fforce` 
    date >> $log
    if test ! "$force" = 1; then
    	rm $fforce # disabled
	echo fsck is temporarily disabled >> $log
    	exit 0
    fi
    echo fsck is temporarily enabled >> $log
else
    cfg=/etc/default/kernel-boot
    test -f $cfg || exit 0
    FSCK_HOME=0
    source $cfg
    if test "$FSCK_HOME" = 1; then
	force=
    elif test "$FSCK_HOME" = force; then
    	force=1
    else
    	exit 0 # disabled
    fi 
fi

part=`sfdisk -l /dev/mmcblk0 | awk '$6 == 83 { print $1; exit }'`
test -z "$part" && exit 0

mkdir -p /etc/kernel-power/
date >> $log

# dont continue if reboot during fsck
echo 0 > $fforce
test "$force" = 1 && force="-f"
fsck -y $force -t ext3 $part >> $log
echo fsck successfully finished >> $log

rm $fforce # use defaults

exit 0
