#!/bin/sh PORTDIR=/usr/portage PROFDIR="${PORTDIR}"/profiles [ -f profiles-nodes ] || \ find "${PROFDIR}" -mindepth 2 \( \ -name deprecated -o -name eapi -o -name make.defaults -o \ -name package.mask -o -name package.provided -o -name packages -o \ -name packages.build -o -name package.use -o -name package.use.force -o \ -name package.use.mask -o -name package.use.mask.example -o -name parent -o \ -name profile.bashrc -o -name use.force -o -name use.mask -o -name virtuals \) \ -printf '%h\n' | \ sort | \ uniq | \ sed "s~^${PROFDIR}/*~~g" >profiles-nodes [ -f profiles-edges ] || \ for top_p in `find "${PROFDIR}" -name parent` ; do top_p_dir="${top_p%parent}" echo "=== ${top_p}" 1>&2 # Child -> Parent sed <${top_p} -e '/^#/d' -e "s~^~${top_p_dir}~g" | xargs -n1 readlink -f \ |sed \ -e "s,^,${top_p_dir}:,g" \ -e "s,/*${PROFDIR}/*,,g" \ |sed -r \ -e 's,(:|^)/+,\1,g' \ -e 's,/+(:|$),\1,g' \ |sed -r \ -e 's,/?usr/portage/profiles,,g' done >profiles-edges