From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1SfdEz-0001yi-Py for garchives@archives.gentoo.org; Fri, 15 Jun 2012 20:35:34 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id CFA3BE087C; Fri, 15 Jun 2012 20:34:31 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id A1DA7E0875 for ; Fri, 15 Jun 2012 20:34:31 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0143E1B4033 for ; Fri, 15 Jun 2012 20:34:31 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 7A3AFE5438 for ; Fri, 15 Jun 2012 20:34:28 +0000 (UTC) From: "André Erdmann" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "André Erdmann" Message-ID: <1339699952.50ba18a562ef365ffbd2c7ba49a9027ba101234b.dywi@gentoo> Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/ X-VCS-Repository: proj/R_overlay X-VCS-Files: roverlay/util.py X-VCS-Directories: roverlay/ X-VCS-Committer: dywi X-VCS-Committer-Name: André Erdmann X-VCS-Revision: 50ba18a562ef365ffbd2c7ba49a9027ba101234b X-VCS-Branch: master Date: Fri, 15 Jun 2012 20:34:28 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 2c078a94-c7e5-4ed7-bee7-5ce08ac64a46 X-Archives-Hash: 50eef1ea5be5790371b82115a2913fe5 commit: 50ba18a562ef365ffbd2c7ba49a9027ba101234b Author: Andr=C3=A9 Erdmann mailerd de> AuthorDate: Thu Jun 14 18:52:32 2012 +0000 Commit: Andr=C3=A9 Erdmann mailerd de> CommitDate: Thu Jun 14 18:52:32 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/R_overlay.git= ;a=3Dcommit;h=3D50ba18a5 extend roverlay.util * added keepenv that selectively imports os.environ * added misc functions modified: roverlay/util.py --- roverlay/util.py | 55 ++++++++++++++++++++++++++++++++++++++++++++++++= ++++++ 1 files changed, 55 insertions(+), 0 deletions(-) diff --git a/roverlay/util.py b/roverlay/util.py index 5e9690d..6547906 100644 --- a/roverlay/util.py +++ b/roverlay/util.py @@ -6,6 +6,8 @@ import re import os.path import logging =20 +import os + from roverlay import config =20 LOGGER =3D logging.getLogger ( 'util' ) @@ -46,3 +48,56 @@ def get_packageinfo ( filepath ): ) =20 # --- end of get_packageinfo (...) --- + +def get_extra_packageinfo ( package_info, name ): + return dict ( + PKG_DISTDIR =3D os.path.dirname ( package_info ['package_file'] ), + EBUILD_FILE =3D os.path.join ( + config.get_or_fail ( [ 'OVERLAY', 'dir' ] ), + config.get_or_fail ( [ 'OVERLAY', 'category' ] ), + package_info [ 'ebuild_filename'].partition ( '-' ) [0], + package_info [ 'ebuild_filename'] + ".ebuild" + ) + ) [name] +# --- end of get_extra_packageinfo (...) --- + +def pipe_lines ( _pipe, use_filter=3DFalse, filter_func=3DNone ): + lines =3D _pipe.decode().split ('\n') + if use_filter: + return filter ( filter_func, lines ) + else: + return lines +# --- end of pipe_lines (...) --- + + +def keepenv ( *to_keep, local_env=3DNone ): + if local_env is None: + myenv =3D dict() + else: + myenv =3D local_env + + for item in to_keep: + if isinstance ( item, tuple ) and len ( item ) =3D=3D 2: + + var =3D item [0] + fallback =3D item [1] + else: + var =3D item + fallback =3D None + + if isinstance ( var, str ): + if var in os.environ: + myenv [var] =3D os.environ [var] + elif not fallback is None: + myenv [var] =3D fallback + else: + varlist =3D var + for var in varlist: + if var in os.environ: + myenv [var] =3D os.environ [var] + elif not fallback is None: + myenv [var] =3D fallback + + # -- for + return myenv if local_env is None else None +# --- end of keepenv (...) ---