#!/bin/bash
#sanify check

if [ $# -lt 1 ] ; then
	echo "usage $0 ROOTDIR"
	exit 1
fi

rootdir=$1
VZPKGENVDIR="/vz/pkgenv/rpmzypp44x64"
TEMPLATEDIR="/vz/template/sles/11/x86_64"

if [ -z "$rootdir" ]; then
	echo "ROOTDIR is not set."
	exit 1
fi
		
# Check root directory
if [ ! -d $rootdir ]; then
	echo "$rootdir: should be a directory."
	exit 1
fi

pushd $rootdir > /dev/null

# Bootstrap a minimal chroot tree for the rest installation
mkdir -p var/lib/rpm
mkdir -p var/lock/rpm
mkdir -p var/tmp
mkdir -p dev
mkdir -p etc/sysconfig
mkdir -p var/run/dhcpv6

# Create the default lang file
echo "RC_LANG=\"\"
RC_LC_ALL=\"\"
RC_LC_MESSAGES=\"\"
RC_LC_CTYPE=\"\"
RC_LC_COLLATE=\"\"
RC_LC_TIME=\"\"
RC_LC_NUMERIC=\"\"
RC_LC_MONETARY=\"\"
RC_LC_PAPER=\"\"
ROOT_USES_LANG=\"ctype\"
AUTO_DETECT_UTF8=\"no\"
INSTALLED_LANGUAGES=\"\"" > etc/sysconfig/language

# Create the empty rpmdb and import the keys from every repository
cp $VZPKGENVDIR/var/lib/rpm/* var/lib/rpm
for i in $TEMPLATEDIR/pm/raw/*; do
	VIRT_OSRELEASE=`cat $VZPKGENVDIR/osrelease 2>/dev/null` \
		/usr/libexec/run_from_chroot $VZPKGENVDIR /bin/rpm \
		--import --root $rootdir $i/repodata/*.key > /dev/null 2>&1
done

# mount /dev/pts and proc
echo "proc  /proc       proc    defaults    0       0" >> etc/fstab
echo "none  /dev/pts    devpts  nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000    0    0" >> etc/fstab

# add some groups and users, provides by aaa_base
# some rpms (filesystem,..) use it before aaa_base installation
echo "root:x:0:
bin:x:1:daemon
daemon:x:2:
sys:x:3:
tty:x:5:
disk:x:6:
lp:x:7:
www:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:
news:x:13:
uucp:x:14:
shadow:x:15:
dialout:x:16:
audio:x:17:
floppy:x:19:
cdrom:x:20:
console:x:21:
utmp:x:22:
public:x:32:
video:x:33:
games:x:40:
xok:x:41:
trusted:x:42:
modem:x:43:
ftp:x:49:
man:x:62:
users:x:100:
nobody:x:65533:
nogroup:x:65534:nobody
tape:!:101:
messagebus:!:102:
postfix:!:51:
maildrop:!:59:
polkituser:!:103:
haldaemon:!:104:" > etc/group

echo "root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash
mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
games:x:12:100:Games account:/var/games:/bin/bash
man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash
wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false
ftp:x:40:49:FTP account:/srv/ftp:/bin/bash
messagebus:x:100:102:User for D-Bus:/var/run/dbus:/bin/false
postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false
polkituser:x:101:103:PolicyKit:/var/run/PolicyKit:/bin/false
haldaemon:x:102:104:User for haldaemon:/var/run/hald:/bin/false
nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash" > etc/passwd

mknod dev/zero c 1 5
chmod 666 dev/zero

popd > /dev/null
