#!/bin/sh

# install.sh: Debian telepitö script
# Released under GNU GPL by GCS <gcs@lsc.hu> for Linux Support Center

# Melyik könyvtár tartalmazza a csomagokat
debfiles=/mnt/stuff/tmp/debian/pool/main/

# Megadták-e, melyik könyvtárba hozzuk létre a chroot környezetet?
if [ -z $1 ]; then
	target="chroot/"
else
	target=$1
fi

# Azon csomagok listája, amelyeket a függöségek kikerülése miatt felteszünk
corepackages="adduser apt base-config base-files base-passwd bash bsdutils console-common console-data console-tools coreutils debconf debianutils dpkg dselect e2fslibs e2fsprogs findutils gcc-3.3-base grep gzip info initscripts libblkid1 libc6 libcap1 libcomerr2 libdb1-compat libdb3 libdb4.0 libgcc1 libgdbm3 libncurses5 libpam-modules libpam-runtime libpam0g libss2 libstdc++2.10-glibc2.2 libstdc++5 libuuid1 login mawk mount passwd perl-base perl-modules perl procps slang1 slang1a-utf8 sed sysv-rc sysvinit tar util-linux zlib1g"


mkdir -p $target
cd $target || exit 1
# Abszult elérési út beállítása
target=`pwd`
mkdir -p proc var/cache/apt/archives var/lib/dpkg/info var/lib/dpkg/updates

mount -t proc proc proc

# /dev alatti eszközök létrehozása a fájl kitömörítésével
tar -zxf /usr/lib/debootstrap/devices.tar.gz
touch var/lib/dpkg/status

mkdir etc
touch etc/resolv.conf etc/fstab
echo "localhost" >etc/hostname
echo "127.0.0.1 localhost localhost.localdomain" >etc/hosts

touch etc/passwd etc/shadow etc/group

# Amíg van csomag...
for package in $corepackages
do
	# Csomag tartalmának kitömörítése
	ar -p $debfiles/${package}_*.deb data.tar.gz | tar -zxf -
	temp=`basename $package`
	packagename=`echo $temp | cut -d_ -f1`
	version=`ls $debfiles/${package}_*.deb | cut -d_ -f2`
	# dpkg átverése, hogy a csomag fel van telepítve
	echo "Package: $packagename" >>var/lib/dpkg/status
	if [ "x$packagename" = "xmawk" ]; then
		echo "Provides: awk" >>var/lib/dpkg/status
		chroot $target /bin/ln -s /usr/bin/mawk /usr/bin/awk
	fi
	echo "Version: $version
Status: install ok installed
" >>var/lib/dpkg/status
# A dpkg megnyugtatására, különben panaszkodik, hogy nem létezik
touch var/lib/dpkg/info/$packagename.list
done
touch var/lib/dpkg/available

# FIXME: az info bejegyzései, mi hozza létre? Nélküle nem megy fel minden csomag
cp /usr/share/info/dir usr/share/info/dir
cp /usr/info/dir usr/info/dir
#touch usr/info/dir
#touch var/backups/infodir.bak

export DEBIAN_FRONTEND=noninteractive

# base-* a passwd/shadow, group fajlokert
# dpkg inkabb csak a biztonsag kedveert
# slang1 az util-linux csomagnak
dpkg --root=$target --install $debfiles/base-*.deb $debfiles/dpkg_*.deb

# A biztonság kedvéért az ld.so.cache frissítése
chroot $target /sbin/ldconfig

# Idözóna beállítása
chroot $target /bin/ln -s /usr/share/zoneinfo/Europe/Budapest /etc/localtime

#echo -n "Minden csomag telepitese (i/n)? "
#read answer
#if [ "x$answer" = "xi" -o "x$answer" = "xI" ]; then
#	echo Install
	mv sbin/start-stop-daemon sbin/start-stop-daemon.REAL
	echo "#!/bin/sh

echo
echo Ál start-stop-daemon hívás, nem csinálok semmit." >sbin/start-stop-daemon
	chmod 0755 sbin/start-stop-daemon

	pkgs=`find $debfiles -name \*.deb | egrep -v "base-|dpkg|kernel|mpm-perchild|mpm-prefork|mpm-threadpool|slang1_|-dev"`
	dpkg --root=$target --install $pkgs
	mv sbin/start-stop-daemon.REAL sbin/start-stop-daemon
#else
#	echo Nincs install
#fi

umount proc
