#!/bin/bash # find a given ebuild. based upon code by agriffis. does some fancy prediction, # so it will find categories if necessary (eg efind sparc-dev-sources will find # sys-kernel/sparc-dev-sources, and does partial name matching). prints the # result in the form category/package . efind() { local efinddir cat pkg efinddir=$(eportdir) case $1 in *-*/*) pkg=${1##*/} cat=${1%/*} ;; ?*) pkg=${1} cat=$(echo1 ${efinddir}/*-*/${pkg}/*.ebuild) [[ -f $cat ]] || cat=$(echo1 ${efinddir}/*-*/${pkg}*/*.ebuild) [[ -f $cat ]] || cat=$(echo1 ${efinddir}/*-*/*${pkg}/*.ebuild) [[ -f $cat ]] || cat=$(echo1 ${efinddir}/*-*/*${pkg}*/*.ebuild) if [[ ! -f $cat ]]; then return 1 fi pkg=${cat%/*} pkg=${pkg##*/} cat=${cat#${efinddir}/} cat=${cat%%/*} ;; esac echo ${cat}/${pkg} } efind $@