#!/bin/sh

source /etc/conf.d/eworm-repo
source /usr/lib/eworm/noroot
source /usr/lib/eworm/nice

function help() {
	echo "usage: ${0} [OPTIONS]"
	echo
	echo "where OPTIONS are:"
	echo " -c  check AUR state (outdated and orphan)"
	echo " -h  show this help"
	echo " -r  rebuild git packages"
	echo " -s  sync ABS and git"
	echo
	echo "Default is to build local package if PKGBUILD exists."
}

FAILED=""
CHECKAUR=""
REBUILDGIT=0
SYNC=0

while getopts "chrs" opt; do
	case ${opt} in
		c)
			CHECKAUR="-c"
			;;
		h)
			help
			exit 0
			;;
		r)
			REBUILDGIT=1
			;;
		s)
			SYNC=1
			;;
	esac
done

if [ ${SYNC} -eq 1 ]; then
	repo-git
	repo-hg
	repo-bzr
fi

for ARCH in x86_64; do
	# check packages from AUR
	if [ -s ${BASEDIR}/aur.${ARCH} ]; then
		while read CHECKSUM PKG CHROOT; do
			REBUILD=""
			if [ ${REBUILDGIT} -eq 1 -a "${PKG##*-}" == "git" ]; then
				REBUILD="-r"
			fi
			if ! repo-make ${REBUILD} ${CHECKAUR} -a "${ARCH}" -C "${CHROOT:-extra}" -u "${PKG}"; then
				FAILED+="${PKG} (AUR/${ARCH}) "
			fi
		done < ${BASEDIR}/aur.${ARCH}
	fi
done

if [ ! -z "${FAILED}" ] ; then
	echo "Failed Builds: ${FAILED}"
fi

repo-sync
