From d2195dd3d1489fbe1b7be6f7e33bc82355e6edf3 Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Wed, 19 Apr 2006 13:45:48 +0000 Subject: [PATCH] =?UTF-8?q?index=20non-recursive=20yap=C4=B1labilsin.=20(-?= =?UTF-8?q?-non-recursive=20or=20-R)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pisi/api.py | 5 +++-- pisi/cli/commands.py | 9 +++++++-- pisi/index.py | 4 +++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/pisi/api.py b/pisi/api.py index 3cae6657..9dfaabef 100644 --- a/pisi/api.py +++ b/pisi/api.py @@ -308,7 +308,8 @@ def check(package): ctx.ui.info("OK", False) return corrupt -def index(dirs=None, output='pisi-index.xml', skip_sources=False, skip_signing=False): +def index(dirs=None, output='pisi-index.xml', skip_sources=False, skip_signing=False, + non_recursive=False): """accumulate PISI XML files in a directory""" index = Index() if not dirs: @@ -316,7 +317,7 @@ def index(dirs=None, output='pisi-index.xml', skip_sources=False, skip_signing=F for repo_dir in dirs: repo_dir = str(repo_dir) ctx.ui.info(_('* Building index of PISI files under %s') % repo_dir) - index.index(repo_dir, skip_sources) + index.index(repo_dir, skip_sources, non_recursive) if skip_signing: index.write(output, sha1sum=True, compress=File.bz2, sign=None) diff --git a/pisi/cli/commands.py b/pisi/cli/commands.py index 7f53c5d3..2e38141a 100644 --- a/pisi/cli/commands.py +++ b/pisi/cli/commands.py @@ -733,6 +733,9 @@ source and binary packages. self.parser.add_option("-G", "--skip-signing", action="store_true", default=False, help=_("do not sign index.")) + self.parser.add_option("-R", "--non-recursive", action="store_true", + default=False, + help=_("do not recurse into directories.")) def run(self): @@ -741,12 +744,14 @@ source and binary packages. if len(self.args)>0: index(self.args, ctx.get_option('output'), skip_sources = ctx.get_option('skip_sources'), - skip_signing = ctx.get_option('skip_signing')) + skip_signing = ctx.get_option('skip_signing'), + non_recursive = ctx.get_option('non_recursive')) elif len(self.args)==0: ctx.ui.info(_('Indexing current directory.')) index(['.'], ctx.get_option('output'), skip_sources = ctx.get_option('skip_sources'), - skip_signing = ctx.get_option('skip_signing')) + skip_signing = ctx.get_option('skip_signing'), + non_recursive = ctx.get_option('non_recursive')) self.finalize() diff --git a/pisi/index.py b/pisi/index.py index 074a26fa..bf81c72a 100644 --- a/pisi/index.py +++ b/pisi/index.py @@ -86,7 +86,7 @@ class Index(XmlFile): tmpdir = os.path.join(ctx.config.index_dir(), repo) File.check_signature(filename, tmpdir) - def index(self, repo_uri, skip_sources=False): + def index(self, repo_uri, skip_sources=False, non_recursive=False): self.repo_dir = repo_uri for root, dirs, files in os.walk(repo_uri): for fn in files: @@ -100,6 +100,8 @@ class Index(XmlFile): self.add_spec(os.path.join(root, fn), repo_uri) if fn == 'distribution.xml': self.add_distro(os.path.join(root, fn)) + if non_recursive: + del dirs[0:] def update_db(self, repo, txn = None): for comp in self.components: