#!/bin/sh # Requires: qatom(1) from portage-utils and xargs(1) from findutils for path in /var/db/pkg/*/[!-]*/NEEDED; do path=${path%/NEEDED} if read -r slot < "$path/SLOT"; then printf '%s:%s\n' "${path#/var/db/pkg/}" "$slot" else printf >&2 'Failed to read SLOT for %s\n' "$contents" fi done \ | xargs -rd '\n' qatom -F '%{CATEGORY}/%{PN}:%[SLOT]' \ | xargs -ord '\n' emerge -1 "$@"