# Created by Tobias Powalowski <tpowa@archlinux.org>

install ()
{
    ### check for root
    if ! [ $UID -eq 0 ]; then 
	echo "ERROR: Please run as root user!"
	exit 1
    fi

    ### check for TEMPDIR
    if [ $TEMPDIR = "" ]; then
	 echo "ERROR: No TEMPDIR was set, please set TEMPDIR first!"
	 exit 1
    fi

    ### check for activated testing repository
    if ! [ "$(grep '^\[testing\]' /etc/pacman.conf)" = "" ]; then 
	echo "WARNING: TESTING REPOSITORY ACTIVATED"
	echo "-------------------------------------"
	echo "POSSIBILITY OF BROKEN BINARY PACKAGES ON INSTALL MEDIA!"
	echo "Use a chroot instead to avoid those problems."
	echo "5 seconds time to cancel with CTRL+C"
	sleep 5
    fi
    ### setting up directories
    if ! [ "${LOCALSETUP}" = "yes" ]; then 
    	SVNTREE=$(mktemp /tmp/svntree.XXXX)
    	rm ${SVNTREE}
    	mkdir -p ${SVNTREE}
    else
    	SVNTREE=${SVNTREE}
    fi
    cd ${SVNTREE}
    if ! [ "${LOCALSETUP}" = "yes" ]; then
	# generate base
	BASE=""
	for i in $(pacman -Sg base | sed -e "s/base//g"); do 
		BASE="$BASE $(echo $i)"
	done
	# generate base-devel
	DEVEL=""
	for i in $(pacman -Sg base-devel | sed -e "s/base-devel//g"); do 
		DEVEL="$DEVEL $(echo $i)"
	done
	SUPPORT=""
	SUPPORT="$(echo -n $(pacman -Ss | grep -e ^core | grep -v '(' | sed -e 's/\ .*/ /g' -e 's#core/##g'))"
	for i in base devel lib support; do
	    mkdir $i
	    svn co -N ${SVNSETUP} $i
	done
	cd base; svn up $BASE; cd ..
	cd devel; svn up $DEVEL; cd ..
	cd support; svn up $SUPPORT; cd ..
	cd  ${SVNTREE}
	SEARCHSVN=$(find ./ -type d -name *"$(uname -m)" ! -name "testing*")
    else
    	cd ${SVNTREE}
	SEARCHSVN=$(find ./ -type d -name *"$(uname -m)" ! -name "testing*")
    fi
    # Download all packages
    PACKAGES=$(for i in ${SEARCHSVN};do ! [ "$(echo $i | awk -F/ '{print $3}')" = "" ] && echo -n "$(echo $i|  awk -F/ '{print $3}') ";done)
    pacman -Sy
    pacman -Sw --noconfirm ${PACKAGES}
    # collect the packages
    mkdir -p ${TEMPDIR}/core-$(uname -m)/pkg/
    for COPY in ${SEARCHSVN};do
    	if ! [ "$(echo ${COPY} | awk -F/ '{print $3}')" = "" ]; then
	    source "${COPY}/PKGBUILD"
	    cp /var/cache/pacman/pkg/${pkgname}-${pkgver}-${pkgrel}-$(uname -m).pkg.tar.gz ${TEMPDIR}/core-$(uname -m)/pkg/
	    echo "$(echo ${COPY}| awk -F/ '{print $2}')/${pkgname}-${pkgver}-${pkgrel}-$(uname -m).pkg.tar.gz" >> ${TEMPDIR}/core-$(uname -m)/pkg/packages.txt
	    repo-add ${TEMPDIR}/core-$(uname -m)/pkg/core.db.tar.gz /var/cache/pacman/pkg/${pkgname}-${pkgver}-${pkgrel}-$(uname -m).pkg.tar.gz || return 1
	fi
    done
    # generate packages.txt
    sort -u ${TEMPDIR}/core-$(uname -m)/pkg/packages.txt -o ${TEMPDIR}/core-$(uname -m)/pkg/packages.txt 
    SCRIPT=
    BINARIES=
    # generate iso title name
    [ "${RUNPROGRAM}" = "mkisolinux" ] && echo "Arch_Linux_CORE $(uname -m)" >> ${ISONAME}
}

help ()
{
cat <<HELPEOF
  This hook sets up all you need for an core install image.
HELPEOF
}
