#!/bin/bash

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

rootdir=$1

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

mknod dev/urandom c 1 9
chmod 0666 dev/urandom

mkdir etc
ln -sf /usr/share/zoneinfo/UTC etc/localtime

echo "proc  /proc       proc    defaults    0    0" >> etc/fstab
echo "none  /dev/pts    devpts  rw,gid=5,mode=620    0    0" >> etc/fstab
echo "none  /run/shm    tmpfs   defaults    0    0" >> etc/fstab

mkdir -p etc/init.d

echo "#!/bin/sh

### BEGIN INIT INFO
# Provides:          wide-dhcpv6-client
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/Stop WIDE DHCPv6 client
# Description:       (empty)
### END INIT INFO

exit 0
" > etc/init.d/wide-dhcpv6-client

chmod 0755 etc/init.d/wide-dhcpv6-client

echo "#!/bin/sh

### BEGIN INIT INFO
# Provides:          bind9
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop bind9
# Description:       bind9 is a Domain Name Server (DNS)
#        which translates ip addresses to and from internet names
### END INIT INFO

exit 0
" > etc/init.d/bind9

chmod 0755 etc/init.d/bind9

mkdir -p etc/udev
touch etc/udev/disabled

# add some basic groups and users, provides by base-passwd
# some debs (base-files,..) use it before base-passwd installation
echo "root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:
floppy:x:25:
tape:x:26:
sudo:x:27:
audio:x:29:
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
messagebus:x:101:
" > etc/group

echo "root:*:0:0:root:/root:/bin/bash
daemon:*:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:*:2:2:bin:/bin:/usr/sbin/nologin
sys:*:3:3:sys:/dev:/usr/sbin/nologin
sync:*:4:65534:sync:/bin:/bin/sync
games:*:5:60:games:/usr/games:/usr/sbin/nologin
man:*:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:*:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:*:8:8:mail:/var/mail:/usr/sbin/nologin
news:*:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:*:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:*:13:13:proxy:/bin:/usr/sbin/nologin
www-data:*:33:33:www-data:/var/www:/usr/sbin/nologin
backup:*:34:34:backup:/var/backups:/usr/sbin/nologin
list:*:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:*:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:*:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
messagebus:x:100:101::/nonexistent:/usr/sbin/nologin" > etc/passwd

echo "root:*:19541:0:99999:7:::
daemon:*:19541:0:99999:7:::
bin:*:19541:0:99999:7:::
sys:*:19541:0:99999:7:::
sync:*:19541:0:99999:7:::
games:*:19541:0:99999:7:::
man:*:19541:0:99999:7:::
lp:*:19541:0:99999:7:::
mail:*:19541:0:99999:7:::
news:*:19541:0:99999:7:::
uucp:*:19541:0:99999:7:::
proxy:*:19541:0:99999:7:::
www-data:*:19541:0:99999:7:::
backup:*:19541:0:99999:7:::
list:*:19541:0:99999:7:::
irc:*:19541:0:99999:7:::
_apt:*:19541:0:99999:7:::
nobody:*:19541:0:99999:7:::
messagebus:!:19555::::::" > etc/shadow

echo "root:*::
daemon:*::
bin:*::
sys:*::
adm:*::
tty:*::
disk:*::
lp:*::
mail:*::
news:*::
uucp:*::
man:*::
proxy:*::
kmem:*::
dialout:*::
fax:*::
voice:*::
cdrom:*::
floppy:*::
tape:*::
sudo:*::
audio:*::
dip:*::
www-data:*::
backup:*::
operator:*::
list:*::
irc:*::
src:*::
shadow:*::
utmp:*::
video:*::
sasl:*::
plugdev:*::
staff:*::
games:*::
users:*::
nogroup:*::
messagebus:!::" > etc/gshadow

mkdir -p usr/bin
ln -s /usr/bin/gawk usr/bin/awk

popd > /dev/null
