#!/bin/bash PKG=$1 MASK=$2 WORLD=/var/lib/portage/world LOG=/dev/tty12 WRITEPKG= [[ -z "$(tail -c1 $WORLD)" ]] || echo >> $WORLD while read category pn pv package_dir pkgname pkgmask; do if [[ $PKG == $pkgname ]] && [[ $MASK == $pkgmask ]] then if [[ $package_dir == "binary" ]] then binary_packages="$binary_packages =$category/$pn-$pv" fi fi done &1 | cat &>>$LOG || exit 1 else ACCEPT_KEYWORDS="**" FEATURES="-getbinpkg" PKGDIR=/usr/portage/packages emerge -OK1 $binary_packages 2>&1 | cat &>>$LOG || exit 1 fi fi while read category pn pv package_dir pkgname pkgmask; do if [[ $PKG == $pkgname ]] && [[ $MASK == $pkgmask ]] then if [[ $package_dir != "binary" ]] then cd $package_dir ebuild=$category/$pn/$pn-${pv}.ebuild [[ -f $ebuild ]] || git checkout $(dirname $ebuild) 2>&1 | cat &>>$LOG if [[ -d "/var/db/repos/gentoo" ]] then DISTDIR=/var/calculate/distfiles ebuild $ebuild merge --skip-manifest | grep --color=never -P "^>>> [^/]" 2>&1 | cat &>>$LOG || exit 1 else DISTDIR=/usr/portage/distfiles ebuild $ebuild merge --skip-manifest | grep --color=never -P "^>>> [^/]" 2>&1 | cat &>>$LOG || exit 1 fi WRITEPKG="$category/$pn" fi fi done >$WORLD