| From 6b94fbd3b74471cf9740a35d669963e0b6c84eac Mon Sep 17 00:00:00 2001 |
| From: Paul Varner <fuzzyray@gentoo.org> |
| Date: Wed, 20 Jun 2012 12:11:44 -0500 |
| Subject: [PATCH] Add support for the md5-cache metadata format. (Bug 422675) |
| |
| The gentoo tree is moving to the md5-cache format instead of pms. This |
| add support for reading the md5-cache metadata format. |
| --- |
| bin/euse | 24 ++++++++++++++++++------ |
| 1 files changed, 18 insertions(+), 6 deletions(-) |
| |
| diff --git a/bin/euse b/bin/euse |
| index 85ff924..3b7556f 100755 |
| --- a/bin/euse |
| +++ b/bin/euse |
| @@ -385,6 +385,7 @@ get_useflaglist() { |
| # |
| get_useflaglist_ebuild() { |
| local known=$(echo "${ACTIVE_FLAGS[5]}" | egrep "^${1}") |
| + local cacheformat |
| if [[ -n $known ]]; then |
| # No need to recache |
| return |
| @@ -400,23 +401,34 @@ get_useflaglist_ebuild() { |
| fi |
| # Open the ebuild file and retrieve defined USE flags |
| [[ ! -d "$portdir/${1}" ]] && continue |
| - if [[ ! -d "$portdir/metadata/cache" ]]; then |
| + cacheformat="unknown" |
| + [[ -d "$portdir/metadata/cache" ]] && cacheformat="cache" # format is pms |
| + [[ -d "$portdir/metadata/md5-cache" ]] && cacheformat="md5-cache" # format is md5-cache |
| + if [[ "$cacheformat" == "unknown" ]]; then |
| echo "!!! Metadata cache not found. You need to run " >&2 |
| echo "!!! 'egencache --repo=$overlay --update'" >&2 |
| echo "!!! to generate metadata for your overlays" >&2 |
| return 1 |
| fi |
| - append=$(set +f; ls $portdir/metadata/cache/${1}-* \ |
| + append=$(set +f; ls ${portdir}/metadata/${cacheformat}/${1}-* \ |
| | egrep "${1}-[0-9.]+" \ |
| - | sed -e "s:$portdir/metadata/cache/${1}-::g" \ |
| + | sed -e "s:${portdir}/metadata/${cacheformat}/${1}-::g" \ |
| | while read -d $'\n' version; do |
| IFS=$'\n' |
| - if [[ ! -e "$portdir/metadata/cache/${1}-$version" ]]; then |
| + if [[ ! -e "${portdir}/metadata/${cacheformat}/${1}-$version" ]]; then |
| # Repo does not have this particular package |
| continue |
| fi |
| - iuse=$(head -11 "$portdir/metadata/cache/${1}-$version"|tail -1) |
| - slot=$(head -3 "$portdir/metadata/cache/${1}-$version"|tail -1) |
| + if [[ "${cacheformat}" == "cache" ]]; then |
| + iuse=$(head -n 11 "${portdir}/metadata/${cacheformat}/${1}-$version"|tail -n 1) |
| + slot=$(head -n 3 "${portdir}/metadata/${cacheformat}/${1}-$version"|tail -n 1) |
| + elif [[ "${cacheformat}" == "md5-cache" ]]; then |
| + iuse=$(grep "^IUSE=" "${portdir}/metadata/${cacheformat}/${1}-$version" | sed 's/^IUSE=//') |
| + slot=$(grep "^SLOT=" "${portdir}/metadata/${cacheformat}/${1}-$version" | sed 's/^SLOT=//') |
| + else |
| + # This is a bug, we should have already returned |
| + return 1 |
| + fi |
| echo "${1};${version};${slot};${iuse};${overlay}" |
| done |
| ) |
| -- |
| 1.7.8.6 |
| |