summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-05-09 13:00:32 -0700
committerZac Medico <zmedico@gentoo.org>2012-05-09 13:15:46 -0700
commit5958b9d406134a139cd66025eaf7bd650fb32b24 (patch)
tree85ece9f394a327886976e25a781427d13e2cc8c0
parent052cc1c657833fadb27c70889749547e1188103a (diff)
downloadportage-5958b9d406134a139cd66025eaf7bd650fb32b24.tar.gz
portage-5958b9d406134a139cd66025eaf7bd650fb32b24.tar.bz2
portage-5958b9d406134a139cd66025eaf7bd650fb32b24.zip
Split out eapi_invalid function.
-rw-r--r--pym/_emerge/EbuildMetadataPhase.py48
-rw-r--r--pym/portage/package/ebuild/_eapi_invalid.py46
2 files changed, 55 insertions, 39 deletions
diff --git a/pym/_emerge/EbuildMetadataPhase.py b/pym/_emerge/EbuildMetadataPhase.py
index f89077ed1..b7af69dc8 100644
--- a/pym/_emerge/EbuildMetadataPhase.py
+++ b/pym/_emerge/EbuildMetadataPhase.py
@@ -5,17 +5,17 @@ from _emerge.SubProcess import SubProcess
import sys
from portage.cache.mappings import slot_dict_class
import portage
+portage.proxy.lazyimport.lazyimport(globals(),
+ 'portage.package.ebuild._eapi_invalid:eapi_invalid',
+)
from portage import os
from portage import _encodings
from portage import _unicode_decode
from portage import _unicode_encode
-from portage.dep import _repo_separator
-from portage.elog import elog_process
-from portage.elog.messages import eerror
+
import errno
import fcntl
import io
-import textwrap
class EbuildMetadataPhase(SubProcess):
@@ -171,40 +171,10 @@ class EbuildMetadataPhase(SubProcess):
self.returncode = 1
def _eapi_invalid(self, metadata):
-
repo_name = self.portdb.getRepositoryName(self.repo_path)
-
- msg = []
- msg.extend(textwrap.wrap(("EAPI assignment in ebuild '%s%s%s' does not"
- " conform with PMS section 7.3.1:") %
- (self.cpv, _repo_separator, repo_name), 70))
-
- if not self._eapi:
- # None means the assignment was not found, while an
- # empty string indicates an (invalid) empty assingment.
- msg.append(
- "\tvalid EAPI assignment must"
- " occur on or before line: %s" %
- self._eapi_lineno)
- else:
- msg.append(("\tbash returned EAPI '%s' which does not match "
- "assignment on line: %s") %
- (metadata["EAPI"], self._eapi_lineno))
-
- if 'parse-eapi-ebuild-head' in self.settings.features:
- msg.extend(textwrap.wrap(("NOTE: This error will soon"
- " become unconditionally fatal in a future version of Portage,"
- " but at this time, it can by made non-fatal by setting"
- " FEATURES=-parse-eapi-ebuild-head in"
- " make.conf."), 70))
+ if metadata is not None:
+ eapi_var = metadata["EAPI"]
else:
- msg.extend(textwrap.wrap(("NOTE: This error will soon"
- " become unconditionally fatal in a future version of Portage."
- " At the earliest opportunity, please enable"
- " FEATURES=parse-eapi-ebuild-head in make.conf in order to"
- " make this error fatal."), 70))
-
- for line in msg:
- eerror(line, phase="other", key=self.cpv)
- elog_process(self.cpv, self.settings,
- phasefilter=("other",))
+ eapi_var = None
+ eapi_invalid(self, self.cpv, repo_name, self.settings,
+ eapi_var, self._eapi, self._eapi_lineno)
diff --git a/pym/portage/package/ebuild/_eapi_invalid.py b/pym/portage/package/ebuild/_eapi_invalid.py
new file mode 100644
index 000000000..50a6978d8
--- /dev/null
+++ b/pym/portage/package/ebuild/_eapi_invalid.py
@@ -0,0 +1,46 @@
+# Copyright 2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+import textwrap
+
+from portage.dep import _repo_separator
+from portage.elog import elog_process
+from portage.elog.messages import eerror
+
+def eapi_invalid(self, cpv, repo_name, settings,
+ eapi_var, eapi_parsed, eapi_lineno):
+
+ msg = []
+ msg.extend(textwrap.wrap(("EAPI assignment in ebuild '%s%s%s' does not"
+ " conform with PMS section 7.3.1:") %
+ (cpv, _repo_separator, repo_name), 70))
+
+ if not eapi_parsed:
+ # None means the assignment was not found, while an
+ # empty string indicates an (invalid) empty assingment.
+ msg.append(
+ "\tvalid EAPI assignment must"
+ " occur on or before line: %s" %
+ eapi_lineno)
+ else:
+ msg.append(("\tbash returned EAPI '%s' which does not match "
+ "assignment on line: %s") %
+ (eapi_var, eapi_lineno))
+
+ if 'parse-eapi-ebuild-head' in settings.features:
+ msg.extend(textwrap.wrap(("NOTE: This error will soon"
+ " become unconditionally fatal in a future version of Portage,"
+ " but at this time, it can by made non-fatal by setting"
+ " FEATURES=-parse-eapi-ebuild-head in"
+ " make.conf."), 70))
+ else:
+ msg.extend(textwrap.wrap(("NOTE: This error will soon"
+ " become unconditionally fatal in a future version of Portage."
+ " At the earliest opportunity, please enable"
+ " FEATURES=parse-eapi-ebuild-head in make.conf in order to"
+ " make this error fatal."), 70))
+
+ for line in msg:
+ eerror(line, phase="other", key=cpv)
+ elog_process(cpv, settings,
+ phasefilter=("other",))