#!/bin/bash eopts=$1 pkg=$2 source /sbin/functions.sh [[ $EUID != 0 ]] && ewarn "You are not root!" && exit 1 [ -z "$pkg" ] && eerror "Please specify a package name (eg. supermerge )" && exit 1 [ ! -e `which emerge` ] && eerror "Emerge binary not found." && exit 1 [ -d /etc/portage ] || mkdir /etc/portage function get_arch { arch=`ls -l /etc/make.profile | awk {'print $11'} | awk --field-separator="/" {'print $6'}` } function scan_merge { masked=`emerge -p $mpkg | grep "masked by"` if [ -n "$masked" ]; then pkg_name=`echo $masked | cut -d ' ' -f 2 | sed -r 's/-[0-9].*//'` pkg_mask=`echo $masked | cut -d ' ' -f 5` einfo "adding $pkg_name (masked by: $pkg_mask)" [ "$pkg_mask" = "~$arch" ] && echo "$pkg_name $pkg_mask" >> /etc/portage/package.keywords [ "$pkg_mask" = "package.mask" ] && echo "$pkg_name" >> /etc/portage/package.unmask scan_merge $mpkg else einfo "no (more) masked packages, now emerging $mpkg" emerge $eopts $mpkg fi } get_arch mpkg=`ACCEPT_KEYWORDS=~$arch emerge -p $pkg | tail -n 1 | sed 's/\[ebuild.......\]\ //' | sed 's/\[[[:digit:]].*\]//' | sed 's/-[[:digit:]].*$//'` echo "probing masked dependencies for $mpkg..." scan_merge $mpkg