commit: 1369a76925496f835dd7076029926f57f9605f8a
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 2 06:04:27 2014 +0000
Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Mon Jun 2 06:04:27 2014 +0000
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=1369a769
repoman/main.py: Create FileChecks class
Move file checks code block to a new checks/directories/ module
---
pym/repoman/checks/directories/__init__.py | 0
pym/repoman/checks/directories/files.py | 77 ++++++++++++++++++++++++++++++
pym/repoman/main.py | 48 +++----------------
3 files changed, 84 insertions(+), 41 deletions(-)
diff --git a/pym/repoman/checks/directories/__init__.py
b/pym/repoman/checks/directories/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/pym/repoman/checks/directories/files.py
b/pym/repoman/checks/directories/files.py
new file mode 100644
index 0000000..62f6169
--- /dev/null
+++ b/pym/repoman/checks/directories/files.py
@@ -0,0 +1,77 @@
+
+'''repoman/checks/diretories/files.py
+
+'''
+
+import io
+
+from portage import _encodings, _unicode_encode
+from portage import os
+
+
+
+class FileChecks(object):
+
+ def __init__(self, qatracker, repoman_settings, repo_settings, portdb,
+ vcs_settings, vcs_new_changed):
+ '''
+ @param qatracker: QATracker instance
+ @param repoman_settings: settings instance
+ @param repo_settings: repository settings instance
+ @param portdb: portdb instance
+ '''
+ self.portdb = portdb
+ self.qatracker = qatracker
+ self.repo_settings = repo_settings
+ self.repoman_settings = repoman_settings
+ self.vcs_settings = vcs_settings
+ self.vcs_new_changed = vcs_new_changed
+
+
+ def check(self, checkdir, checkdirlist, checkdir_relative):
+ '''Checks the ebuild sources and files for errors
+
+ @param xpkg: the pacakge being checked
+ @param checkdir: string, directory path
+ @param checkdir_relative: repolevel determined path
+ '''
+ for y_file in checkdirlist:
+ index =
self.repo_settings.repo_config.find_invalid_path_char(y_file)
+ if index != -1:
+ y_relative = os.path.join(checkdir_relative,
y_file)
+ if self.vcs_settings.vcs is not None and not
self.vcs_new_changed(y_relative):
+ # If the file isn't in the VCS new or
changed set, then
+ # assume that it's an irrelevant
temporary file (Manifest
+ # entries are not generated for file
names containing
+ # prohibited characters). See bug
#406877.
+ index = -1
+ if index != -1:
+ self.qatracker.add_error("file.name",
+ "%s/%s: char '%s'" % (checkdir, y_file,
y_file[index]))
+
+ if not (y_file in ("ChangeLog", "metadata.xml")
+ or y_file.endswith(".ebuild")):
+ continue
+ f = None
+ try:
+ line = 1
+ f = io.open(
+ _unicode_encode(
+ os.path.join(checkdir, y_file),
+ encoding=_encodings['fs'],
errors='strict'),
+ mode='r',
encoding=_encodings['repo.content'])
+ for l in f:
+ line += 1
+ except UnicodeDecodeError as ue:
+ s = ue.object[:ue.start]
+ l2 = s.count("\n")
+ line += l2
+ if l2 != 0:
+ s = s[s.rfind("\n") + 1:]
+ self.qatracker.add_error("file.UTF8",
+ "%s/%s: line %i, just after: '%s'" %
(checkdir, y_file, line, s))
+ finally:
+ if f is not None:
+ f.close()
+ return
+
diff --git a/pym/repoman/main.py b/pym/repoman/main.py
index ffb9929..9db52c0 100755
--- a/pym/repoman/main.py
+++ b/pym/repoman/main.py
@@ -45,6 +45,7 @@ from portage.package.ebuild.digestgen import digestgen
from portage.eapi import eapi_has_iuse_defaults, eapi_has_required_use
from repoman.argparser import parse_args
+from repoman.checks.directories.files import FileChecks
from repoman.checks.ebuilds.checks import run_checks, checks_init
from repoman.checks.ebuilds.fetches import FetchChecks
from repoman.checks.ebuilds.isebuild import IsEbuild
@@ -325,50 +326,15 @@ for xpkg in effective_scanlist:
# Sort ebuilds in ascending order for the KEYWORDS.dropped check.
ebuildlist = sorted(pkgs.values())
ebuildlist = [pkg.pf for pkg in ebuildlist]
-
- for y in checkdirlist:
- index = repo_settings.repo_config.find_invalid_path_char(y)
- if index != -1:
- y_relative = os.path.join(checkdir_relative, y)
- if vcs_settings.vcs is not None and not
vcs_new_changed(y_relative):
- # If the file isn't in the VCS new or changed
set, then
- # assume that it's an irrelevant temporary file
(Manifest
- # entries are not generated for file names
containing
- # prohibited characters). See bug #406877.
- index = -1
- if index != -1:
- qatracker.add_error("file.name",
- "%s/%s: char '%s'" % (checkdir, y, y[index]))
-
- if not (y in ("ChangeLog", "metadata.xml") or
y.endswith(".ebuild")):
- continue
- f = None
- try:
- line = 1
- f = io.open(
- _unicode_encode(
- os.path.join(checkdir, y),
- encoding=_encodings['fs'],
errors='strict'),
- mode='r', encoding=_encodings['repo.content'])
- for l in f:
- line += 1
- except UnicodeDecodeError as ue:
- s = ue.object[:ue.start]
- l2 = s.count("\n")
- line += l2
- if l2 != 0:
- s = s[s.rfind("\n") + 1:]
- qatracker.add_error("file.UTF8",
- "%s/%s: line %i, just after: '%s'" % (checkdir,
y, line, s))
- finally:
- if f is not None:
- f.close()
-
-###############
+#######################
+ filescheck = FileChecks(qatracker, repoman_settings, repo_settings,
portdb,
+ vcs_settings, vcs_new_changed)
+ filescheck.check(checkdir, checkdirlist, checkdir_relative)
+#######################
status_check = VCSStatus(vcs_settings, checkdir, checkdir_relative,
xpkg, qatracker)
status_check.check(check_ebuild_notadded)
eadded.extend(status_check.eadded)
-###############
+
#################
fetchcheck = FetchChecks(qatracker, repoman_settings, repo_settings,
portdb,
vcs_settings, vcs_new_changed)