#!/bin/sh

. /usr/share/debconf/confmodule
. /usr/share/odroid-base-installer/library.sh

if db_get mirror/codename && [ "$RET" ] ; then
	DISTRIBUTION=$RET
else
	exit_error base-installer/no_codename
fi

distribution=`echo $apt | cut -d ' ' -f3`

install_public_keys() {
	log-output -t odroid-base-installer chroot /target apt-get update \
		|| apt_update_failed=$?

	if [ "$apt_update_failed" ]; then
		warning "apt update failed: $apt_update_failed"
	fi

	log-output -t odroid-base-installer apt-install gnupg ca-certificates \
		|| warning "Failed to install ODROID packages into /target/: $?"

	GPGDIR="/usr/share/odroid-base-installer/trusted.gpg.d"

	[ -e $GPGDIR ] || error "No public keys installable"

	COUNT=`ls $GPGDIR/*.pub 2>/dev/null | wc -l`
	for keyfile in $GPGDIR/*.pub ; do
		FILENAME=$(basename $keyfile)
		info "Installing public key $FILENAME"
		cp $keyfile /target/tmp/$FILENAME
		chroot /target apt-key add "/tmp/$FILENAME" 2>/dev/null
		rm -f /target/tmp/$FILENAME
	done
}

install_repositories() {
	[ -e $1 ] || error "Invalid APT source directories"

	info "Adding package repositories for ODROID boards"

	case $(cat /sys/firmware/devicetree/base/model) in
		"Hardkernel ODROID-M1")
			cat > $1/etc/apt/sources.list.d/ppa_linuxfactory_or_kr.list <<EOF
deb http://ppa.linuxfactory.or.kr $DISTRIBUTION main
deb http://ppa.linuxfactory.or.kr $DISTRIBUTION rk3568
deb http://ppa.linuxfactory.or.kr $DISTRIBUTION rockchip
EOF
			;;
		*)
			cat > $1/etc/apt/sources.list.d/ppa_linuxfactory_or_kr.list <<EOF
deb http://ppa.linuxfactory.or.kr $DISTRIBUTION main
deb http://ppa.linuxfactory.or.kr $DISTRIBUTION non-free
deb http://ppa.linuxfactory.or.kr $DISTRIBUTION contrib
EOF
			;;
	esac
}

install_odroid_packages() {
	log-output -t odroid-base-installer chroot /target apt-get update \
		|| apt_update_failed=$?

	if [ "$apt_update_failed" ]; then
		warning "apt update failed: $apt_update_failed"
	fi

	if [ -f /usr/share/odroid-base-installer/packages ]; then
		for pkg in $(cat /usr/share/odroid-base-installer/packages); do
			log-output -t odroid-base-installer apt-install $pkg \
				|| warning "Failed to install $pkg into /target/: $?"
		done
	fi

	BOOTSCRIPT_PKG=$(default_bootscript_package)
	if [ ! -z $BOOTSCRIPT_PKG ]; then
		log-output -t odroid-base-installer apt-install $BOOTSCRIPT_PKG \
			|| echo $BOOTSCRIPT_PKG >> /var/lib/apt-install/queue
	fi
}

# install 'apt-transport-https' for a repository based on
# https:// protocol.
log-output -t odroid-base-installer apt-install apt-transport-https

if [ ! -f /etc/services ]; then
	ln -s /target/etc/services /etc || true
fi
log-output -t odroid-base-installer rdate -s time.bora.net

install_public_keys
install_repositories /target
install_odroid_packages
