#!/bin/sh
# Rsync minimal changes directly to live image

. $(dirname $0)/common.inc.sh

HOST=${1:-10.0.42.1}
BASEDIR=`dirname $0`
if [ -n "$2" ]; then
  IMG=$2
else
  CFG="${BASEDIR}/../cfg/nanobsd.wleiden"
  
  # Find object directory 
  eval `grep '^NANO_NAME=' ${CFG}`
  OBJDIR="/usr/obj/nanobsd.${NANO_NAME}"
  IMG=${OBJDIR}/_.disk.image
fi

if [ ! -r "${IMG}" ]; then
  p_err Source ${IMG} does not exists
fi

# Make sure we are root from this point on
f_check_root


# Prepare image as filesystem
MNT=`mktemp -d -t $(basename $0)`
MD=`mdconfig -a -t vnode -f ${IMG}`
mount /dev/${MD}a ${MNT} || exit 1

# On error clean up nicely 
trap "cd /; umount ${MNT}; rmdir ${MNT}; mdconfig -d -u ${MD}" 0 1 2 3 15 

#XXX: Might want to do in one fly
# Set to write mode
ssh $HOST mount -uwo noatime / || exit 1
# Sync changes
rsync -av --exclude=/dev --exclude=/etc --exclude=/var ${MNT}/ ${HOST}:/ || exit 1
# Set to read-only mode again
ssh $HOST mount -ur / || exit 1

exit 0
