* [gentoo-commits] proj/R_overlay:master commit in: roverlay/packagerules/parser/, roverlay/depres/simpledeprule/, ...
@ 2013-08-23 13:52 André Erdmann
0 siblings, 0 replies; only message in thread
From: André Erdmann @ 2013-08-23 13:52 UTC (permalink / raw
To: gentoo-commits
commit: 5f8542bbe5145ab5a66105908d18e4b9a9be4f8b
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Thu Aug 22 14:34:09 2013 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Thu Aug 22 14:34:09 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=5f8542bb
use for_all_files_decorator()
Use common for_all_files() functionality, e.g. ignore ".git" dirs while
recursively searching for files.
---
roverlay/depres/simpledeprule/reader.py | 16 +++++-----------
roverlay/packagerules/parser/text.py | 6 ++++++
roverlay/packagerules/rules.py | 6 ++----
3 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/roverlay/depres/simpledeprule/reader.py b/roverlay/depres/simpledeprule/reader.py
index e22877b..22f3cf3 100644
--- a/roverlay/depres/simpledeprule/reader.py
+++ b/roverlay/depres/simpledeprule/reader.py
@@ -15,7 +15,7 @@ __all__ = [ 'SimpleDependencyRuleReader', ]
import os
import logging
-import roverlay.util
+import roverlay.util.common
from roverlay.depres.simpledeprule.rulemaker import SimpleRuleMaker
@@ -30,6 +30,9 @@ class SimpleDependencyRuleReader ( object ):
# bind read method of the rule maker
self.read_file = self._rmaker.read_file
+ self.read_files = roverlay.util.common.for_all_files_decorator (
+ self.read_file,
+ )
self._pool_add = pool_add
self._when_done = when_done
@@ -49,16 +52,7 @@ class SimpleDependencyRuleReader ( object ):
"Read method is for resolver, but pool_add is None."
)
- for k in files_or_dirs:
- if os.path.isdir ( k ):
- if not roverlay.util.is_vcs_dir ( k ):
- # without recursion
- for fname in os.listdir ( k ):
- f = k + os.sep + fname
- if os.path.isfile ( f ):
- self.read_file ( f )
- else:
- self.read_file ( k )
+ self.read_files ( files_or_dirs )
rule_count, pools = self._rmaker.done ( as_pool=True )
self.logger.debug ( "Read {} rules in {} files.".format (
diff --git a/roverlay/packagerules/parser/text.py b/roverlay/packagerules/parser/text.py
index 87db0b0..1b0373b 100644
--- a/roverlay/packagerules/parser/text.py
+++ b/roverlay/packagerules/parser/text.py
@@ -4,6 +4,8 @@
# Distributed under the terms of the GNU General Public License;
# either version 2 of the License, or (at your option) any later version.
+import roverlay.util.common
+
import roverlay.packagerules.parser.namespace
import roverlay.packagerules.parser.context.rule
@@ -48,6 +50,10 @@ class RuleParser ( object ):
self._current_rule = None
# previous rule blocks
self._parsed_rules = None
+
+ self.load_recursive = roverlay.util.common.for_all_files_decorator (
+ self.load
+ )
# --- end of __init__ (...) ---
def _feed ( self, l, lino ):
diff --git a/roverlay/packagerules/rules.py b/roverlay/packagerules/rules.py
index 2f2fa69..5cbe600 100644
--- a/roverlay/packagerules/rules.py
+++ b/roverlay/packagerules/rules.py
@@ -31,15 +31,13 @@ class PackageRules ( roverlay.packagerules.abstract.rules.NestedPackageRule ):
This is a stub since package rule loading is not implemented.
"""
- rules = PackageRules()
+ rules = cls()
flist = roverlay.config.get ( 'package_rules.files', False )
if flist:
- loader = rules.get_parser()
- roverlay.util.for_all_files ( flist, loader.load )
+ rules.get_parser().load_recursive ( flist )
rules.prepare()
-
return rules
# --- end of get_configured (...) ---
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2013-08-23 13:52 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-23 13:52 [gentoo-commits] proj/R_overlay:master commit in: roverlay/packagerules/parser/, roverlay/depres/simpledeprule/, André Erdmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox