#!/bin/sh
#
# (c) 2009-2011 Wheel Systems Sp. z o.o.
#
# Author: Pawel Jakub Dawidek
#
if [ $# -ne 1 ]; then
echo "usage: $0 name" >/dev/stderr
exit 1
fi
if [ "${1}" = "jailbase" ]; then
zfs destroy -R system/root@jailbase_old
[ $? -eq 0 ] || exit 1
zfs rename system/root@jailbase system/root@jailbase_old
[ $? -eq 0 ] || exit 1
zfs snapshot system/root@jailbase
exit $?
fi
base="system/jails/$1"
path="/jails/$1"
zfsupgrade() {
zfs destroy ${base}_old
[ $? -eq 0 ] || exit 1
zfs rename ${base} ${base}_old
[ $? -eq 0 ] || exit 1
zfs clone system/root@jailbase ${base}
[ $? -eq 0 ] || exit 1
zfs set readonly=on ${base}
[ $? -eq 0 ] || exit 1
for fs in etc tmp var usr root; do
zfs rename ${base}_old/${fs} ${base}/${fs}
[ $? -eq 0 ] || exit 1
done
zfs set mountpoint=none ${base}_old
[ $? -eq 0 ] || exit 1
}
zfsupgrade
umask 22
cd /usr/src/etc/rc.d
make install DESTDIR="${path}"
cd /usr/src
mergemaster -p -D "${path}"
mergemaster -Fi -D "${path}"