append-features() { export FEATURES="${FEATURES} $*" return 0 } package-features() { local target features feature i; # bail if file does not exist or is not readable. [ -r ${ROOT}/etc/portage/package.features ] || return 0 # need bash >= 3 if [ "${BASH_VERSINFO[0]}" -le 2 ]; then eecho "Need bash3 for this bashrc script to work" return 0 fi while read -a target; do if [[ ${target[@]%%#*} ]]; then # valid syntax no >=" ]]; then skip=0 if [[ ${target} != ${CATEGORY} ]] ; then if [[ ${target} != ${CATEGORY}/${PN} ]] ; then skip=1 fi fi if [ "${skip}" == 0 ] ; then flags=(${target[@]:1}) if [[ ${features[@]} =~ 'FEATURES' ]]; then for (( i = 0; i < ${#features[@]}; i++ )); do if [[ ${features[$i]} =~ 'FEATURES' ]]; then append-features $(eval echo "${features[$i]}") unset features[$i] fi done fi for feature in ${features[@]}; do if [[ ${FEATURES} =~ ${feature} ]]; then continue 1 else append-features "${feature}" fi done export -n FEATURES #eecho "Using package.features entry for target ${target} for ${CATEGORY}/${PN}" fi fi fi done < ${ROOT}/etc/portage/package.features }