#!/bin/bash

# Copyright (C) 2016 NIWA Hideyuki

PATH=/usr/lib/fulcon/lib/:$PATH

# BASE dir
CONTAINER_DIR=/var/lib/fulcon/setup

# check root
if [ ${EUID:-$UID} -ne 0 ] ; then
  echo "error: Because you are not root, you cannot execute this command."
  exit 1
fi

usage () {
	echo "usage ; release-rootfs NAME"
}

# check arts
if [ $# -ne 1 ]; then
	usage
	exit -1
fi

umask 022

LXCNAME=$1

rootfs=$CONTAINER_DIR/$LXCNAME/rootfs

lsdir() {
  ls -f --ind=none $1 | sed '/^\.\{1,2\}$/d'
}

# release root dir

# release /usr
umount $rootfs/usr >& /dev/null
rmdir  $rootfs/usr >& /dev/null

# release /bin
if [ ! -L $rootfs/bin ]; then
	umount $rootfs/bin >& /dev/null
	rmdir  $rootfs/bin >& /dev/null
else
	rm -f $rootfs/bin
fi

# release /sbin
if [ ! -L $rootfs/sbin ]; then
	umount $rootfs/sbin >& /dev/null
	rmdir  $rootfs/sbin >& /dev/null
else
	rm -f $rootfs/sbin
fi

# release /lib64
if [ ! -L $rootfs/lib64 ]; then
	umount $rootfs/lib64 >& /dev/null
	rmdir  $rootfs/lib64 >& /dev/null
else
	rm -f $rootfs/lib64
fi

# release /var/lib
for i in `lsdir /var/lib`; do
	if [ -d $rootfs/var/lib/$i ] ; then
		if [ x"$i" != x"fulcon" -a x"$i" != x"tmp" -a \
				x"$i" != x"docker" -a \
				x"$i" != x"libvirt" -a x"$i" != x"slot-os" ]; then
			umount $rootfs/var/lib/$i >& /dev/null
			rmdir  $rootfs/var/lib/$i >& /dev/null
		else
			rmdir  $rootfs/var/lib/$i
		fi
	fi
done

# release /var
rm -rf $rootfs/var/log
rm -rf $rootfs/var/spool
for i in `lsdir /var` ; do
	if [ -L $rootfs/var/$i ] ; then
		rm -f $rootfs/var/$i
	elif [ -d $rootfs/var/$i ] ; then
		if [ x"$i" == x"lib" ]; then
			rmdir  $rootfs/var/$i >& /dev/null
		else
			umount $rootfs/var/$i >& /dev/null
			rmdir  $rootfs/var/$i >& /dev/null
		fi
	fi
done

rm -f  $rootfs/run/run
rm -rf $rootfs/run
rm -rf $rootfs/etc
rm -rf $rootfs/home
rm -rf $rootfs/lib
rm -rf $rootfs/root
rm -rf $rootfs/tmp
rm -rf $rootfs/.autorelabel

for i in `lsdir /` ; do
	if [ -L $rootfs/$i ] ; then
		rm -f $rootfs/$i
	elif [ -d $rootfs/$i ] ; then
		rmdir $rootfs/$i
	fi
done

exit 0
