Gentoo Archives: gentoo-commits

From: Slava Bacherikov <slava@××××××××××××××.ua>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/management/commands/
Date: Sun, 26 Aug 2012 23:01:01
Message-Id: 1346020260.06ec53cb34cf47659e6b914a1525801845cde754.bacher09@gentoo
1 commit: 06ec53cb34cf47659e6b914a1525801845cde754
2 Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org>
3 AuthorDate: Sun Aug 26 22:31:00 2012 +0000
4 Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
5 CommitDate: Sun Aug 26 22:31:00 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=06ec53cb
7
8 Add scan only overlays option
9
10 ---
11 .../packages/management/commands/scanpackages.py | 5 +++
12 gpackages/apps/packages/scan.py | 37 ++++++++++++++-----
13 2 files changed, 32 insertions(+), 10 deletions(-)
14
15 diff --git a/gpackages/apps/packages/management/commands/scanpackages.py b/gpackages/apps/packages/management/commands/scanpackages.py
16 index 32e85b0..c0c57a4 100644
17 --- a/gpackages/apps/packages/management/commands/scanpackages.py
18 +++ b/gpackages/apps/packages/management/commands/scanpackages.py
19 @@ -24,6 +24,11 @@ class Command(BaseCommand):
20 dest='scan_all',
21 default=False,
22 help='Scan all repositories'),
23 + make_option('-o', '--only-overlays',
24 + action='store_true',
25 + dest='scan_overlays',
26 + default=False,
27 + help='Scan only overlays repositories'),
28 make_option('-r', '--update-repo',
29 action='store_true',
30 dest='update_repo',
31
32 diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/scan.py
33 index 84d73f5..792853b 100644
34 --- a/gpackages/apps/packages/scan.py
35 +++ b/gpackages/apps/packages/scan.py
36 @@ -120,6 +120,7 @@ class Scanner(object):
37 self.verbosity = toint(kwargs.get('verbosity',1),1)
38 self.traceback = bool_get('traceback',False)
39 self.s_all = bool_get('scan_all', False)
40 + self.s_overlyas = bool_get('scan_overlays', False)
41 self.s_packages = bool_get('packages', False)
42 self.s_only_repo_info = bool_get('only_repo_info', False)
43 self.is_show_time = bool_get('show_time', True)
44 @@ -148,17 +149,23 @@ class Scanner(object):
45 if self.is_scan_herds:
46 self.scan_herds()
47
48 + scan_kwargs = {'force_update' : self.force_update,
49 + 'delete' : self.delete,
50 + 'update_repo' : self.update_repo
51 + }
52 +
53 if self.s_all and self.s_packages:
54 - self.scan_all_repos(force_update = self.force_update,
55 - delete = self.delete,
56 - update_repo = self.update_repo)
57 + self.scan_all_repos(**scan_kwargs)
58 +
59 + elif self.s_overlyas and self.s_packages:
60 + self.scan_all_repos(exclude = ['gentoo'], **scan_kwargs)
61 +
62 elif len(self.scan_repos_name) > 0 and self.s_packages:
63 - self.scan_repos_by_name(self.scan_repos_name,
64 - force_update = self.force_update,
65 - delete = self.delete,
66 - update_repo = self.update_repo)
67 + self.scan_repos_by_name(self.scan_repos_name, **scan_kwargs)
68 +
69 elif self.s_only_repo_info and self.s_all:
70 self.scan_all_repo_info(delete = self.delete)
71 +
72 elif self.s_only_repo_info and len(self.scan_repos_name) > 0:
73 self.scan_repo_info_by_names(self.scan_repos_name)
74
75 @@ -345,11 +352,15 @@ class Scanner(object):
76 self.load_maintainers_to_cache()
77 return self.maintainers_cache
78
79 - def scan_all_repos(self, **kwargs):
80 + def scan_all_repos(self, exclude = None, **kwargs):
81 "Scan packages in all available trees"
82 #cache_dict = anydbm.open('cache.db','c')
83 + if exclude is not None:
84 + exclude = frozenset(exclude)
85
86 for repo in portage.iter_trees():
87 + if exclude is not None and repo.name in exclude:
88 + continue
89 self.scan_repo(repo, **kwargs)
90 #cache_dict.close()
91
92 @@ -395,13 +406,19 @@ class Scanner(object):
93
94 return repo_obj
95
96 - def scan_all_repo_info(self, delete = False):
97 + def scan_all_repo_info(self, exclude = None, delete = False):
98 """Scan all info (metada) of all available repositories
99 Args:
100 delete -- if this true that repository will delete
101 - if portage would be not available"""
102 + if portage would be not available
103 + exclude -- exlude this overlays
104 + """
105 + if exclude is not None:
106 + exclude = frozenset(exclude)
107 ex_pk = []
108 for repo in portage.iter_trees():
109 + if exclude is not None and repo.name in exclude:
110 + continue
111 repo_obj = self.get_repo_obj(repo, update_repo = True)
112 self.output("Scaned [%s]\n", repo.name)
113 ex_pk.append(repo_obj.pk)