diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-03-27 14:35:11 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-03-27 14:35:11 -0700 |
commit | 4f8e75b71f149b1aa0411051fe06a836f6f07cd3 (patch) | |
tree | 15075ed9be0a1d8c5f949a55b0d488715a42416f | |
parent | Add PORTAGE_USERNAME and PORTAGE_GROUPNAME to the environment whitelist and (diff) | |
download | portage-idfetch-4f8e75b71f149b1aa0411051fe06a836f6f07cd3.tar.gz portage-idfetch-4f8e75b71f149b1aa0411051fe06a836f6f07cd3.tar.bz2 portage-idfetch-4f8e75b71f149b1aa0411051fe06a836f6f07cd3.zip |
If portage.VERSION == HEAD then use a proxy to lazily call git describe --tags
if it's accessed.
-rw-r--r-- | pym/_emerge/actions.py | 3 | ||||
-rw-r--r-- | pym/portage/__init__.py | 17 |
2 files changed, 19 insertions, 1 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 954123a7..4fb08e3a 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -2477,7 +2477,8 @@ def getportageversion(portdir, target_root, profile, chost, vardb): gccver = getgccversion(chost) unameout=platform.release()+" "+platform.machine() - return "Portage " + portage.VERSION +" ("+profilever+", "+gccver+", "+libcver+", "+unameout+")" + return "Portage %s (%s, %s, %s, %s)" % \ + (portage.VERSION, profilever, gccver, libcver, unameout) def git_sync_timestamps(settings, portdir): """ diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 44402edd..e1de0463 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -553,6 +553,23 @@ def create_trees(config_root=None, target_root=None, trees=None): binarytree, myroot, mysettings["PKGDIR"], settings=mysettings) return trees +if VERSION == 'HEAD': + class _LazyVersion(proxy.objectproxy.ObjectProxy): + def _get_target(self): + global VERSION + if VERSION is not self: + return VERSION + if os.path.isdir(os.path.join(PORTAGE_BASE_PATH, '.git')): + status, output = subprocess_getstatusoutput( + "cd %s ; git describe --tags" % \ + _shell_quote(PORTAGE_BASE_PATH)) + if os.WIFEXITED(status) and os.WEXITSTATUS(status) == os.EX_OK: + VERSION = output + return VERSION + VERSION = 'HEAD' + return VERSION + VERSION = _LazyVersion() + class _LegacyGlobalProxy(proxy.objectproxy.ObjectProxy): __slots__ = ('_name',) |