1 |
commit: 6567ab52cdf6e8093fc5134b46f555edd635fe00 |
2 |
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Feb 7 18:53:58 2016 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Mar 8 02:54:37 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=6567ab52 |
7 |
|
8 |
repoman: Migrate digest regeneration to the vcs modules |
9 |
|
10 |
pym/repoman/actions.py | 15 ++------------- |
11 |
pym/repoman/modules/vcs/bzr/changes.py | 14 ++++++++++++-- |
12 |
pym/repoman/modules/vcs/changes.py | 5 +++++ |
13 |
pym/repoman/modules/vcs/cvs/changes.py | 13 +++++++++++-- |
14 |
pym/repoman/modules/vcs/git/changes.py | 9 +++++++++ |
15 |
pym/repoman/modules/vcs/hg/changes.py | 9 +++++++++ |
16 |
pym/repoman/modules/vcs/settings.py | 6 ++++-- |
17 |
pym/repoman/modules/vcs/svn/changes.py | 17 +++++++++++++++++ |
18 |
8 files changed, 69 insertions(+), 19 deletions(-) |
19 |
|
20 |
diff --git a/pym/repoman/actions.py b/pym/repoman/actions.py |
21 |
index e045295..21e7db6 100644 |
22 |
--- a/pym/repoman/actions.py |
23 |
+++ b/pym/repoman/actions.py |
24 |
@@ -6,7 +6,6 @@ import errno |
25 |
import io |
26 |
import logging |
27 |
import platform |
28 |
-import re |
29 |
import signal |
30 |
import subprocess |
31 |
import sys |
32 |
@@ -25,7 +24,6 @@ from portage.package.ebuild.digestgen import digestgen |
33 |
from portage.process import find_binary, spawn |
34 |
from portage.util import writemsg_level |
35 |
|
36 |
-from repoman._subprocess import repoman_getstatusoutput |
37 |
from repoman.gpg import gpgsign, need_signature |
38 |
from repoman import utilities |
39 |
from repoman.modules.vcs.vcs import vcs_files_to_cps |
40 |
@@ -159,17 +157,8 @@ class Actions(object): |
41 |
"\"You're rather crazy... " |
42 |
"doing the entire repository.\"\n") |
43 |
|
44 |
- if self.vcs_settings.vcs in ('cvs', 'svn') and (myupdates or myremoved): |
45 |
- for x in sorted(vcs_files_to_cps( |
46 |
- chain(myupdates, myremoved, mymanifests), |
47 |
- self.scanner.repolevel, self.scanner.reposplit, self.scanner.categories)): |
48 |
- self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
49 |
- digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
50 |
- |
51 |
- elif broken_changelog_manifests: |
52 |
- for x in broken_changelog_manifests: |
53 |
- self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
54 |
- digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
55 |
+ self.vcs_settings.changes.digest_regen(myupdates, myremoved, mymanifests, |
56 |
+ self.scanner, broken_changelog_manifests) |
57 |
|
58 |
if self.repo_settings.sign_manifests: |
59 |
self.sign_manifest(myupdates, myremoved, mymanifests) |
60 |
|
61 |
diff --git a/pym/repoman/modules/vcs/bzr/changes.py b/pym/repoman/modules/vcs/bzr/changes.py |
62 |
index 9bd0646..81e7cf5 100644 |
63 |
--- a/pym/repoman/modules/vcs/bzr/changes.py |
64 |
+++ b/pym/repoman/modules/vcs/bzr/changes.py |
65 |
@@ -4,7 +4,9 @@ Bazaar module Changes class submodule |
66 |
|
67 |
from repoman.modules.vcs.changes import ChangesBase |
68 |
from repoman._subprocess import repoman_popen |
69 |
- |
70 |
+from repoman._portage import portage |
71 |
+from portage import os |
72 |
+from portage.package.ebuild.digestgen import digestgen |
73 |
|
74 |
class Changes(ChangesBase): |
75 |
'''Class object to scan and hold the resultant data |
76 |
@@ -36,6 +38,7 @@ class Changes(ChangesBase): |
77 |
"./" + elem.split()[-3:-2][0].split('/')[-1:][0] |
78 |
for elem in bzrstatus |
79 |
if elem and (elem[1:2] == "K" or elem[0:1] == "R")] |
80 |
+ self.bzrstatus = bzrstatus |
81 |
# Bazaar expands nothing. |
82 |
|
83 |
@property |
84 |
@@ -45,6 +48,13 @@ class Changes(ChangesBase): |
85 |
return self._unadded |
86 |
self._unadded = [ |
87 |
"./" + elem.rstrip().split()[1].split('/')[-1:][0] |
88 |
- for elem in bzrstatus |
89 |
+ for elem in self.bzrstatus |
90 |
if elem.startswith("?") or elem[0:2] == " D"] |
91 |
return self._unadded |
92 |
+ |
93 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, broken_changelog_manifests): |
94 |
+ if broken_changelog_manifests: |
95 |
+ for x in broken_changelog_manifests: |
96 |
+ self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
97 |
+ digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
98 |
+ |
99 |
|
100 |
diff --git a/pym/repoman/modules/vcs/changes.py b/pym/repoman/modules/vcs/changes.py |
101 |
index 921e9b5..27b627f 100644 |
102 |
--- a/pym/repoman/modules/vcs/changes.py |
103 |
+++ b/pym/repoman/modules/vcs/changes.py |
104 |
@@ -76,6 +76,11 @@ class ChangesBase(object): |
105 |
'''Create a thick manifest''' |
106 |
pass |
107 |
|
108 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, |
109 |
+ broken_changelog_manifests): |
110 |
+ '''Regenerate manifests''' |
111 |
+ pass |
112 |
+ |
113 |
@staticmethod |
114 |
def clear_attic(myheaders): |
115 |
'''Old CVS leftover''' |
116 |
|
117 |
diff --git a/pym/repoman/modules/vcs/cvs/changes.py b/pym/repoman/modules/vcs/cvs/changes.py |
118 |
index 5fc9642..794e850 100644 |
119 |
--- a/pym/repoman/modules/vcs/cvs/changes.py |
120 |
+++ b/pym/repoman/modules/vcs/cvs/changes.py |
121 |
@@ -3,11 +3,12 @@ CVS module Changes class submodule |
122 |
''' |
123 |
|
124 |
import re |
125 |
+from itertools import chain |
126 |
|
127 |
from repoman._portage import portage |
128 |
from repoman.modules.vcs.changes import ChangesBase |
129 |
-from portage import cvstree |
130 |
- |
131 |
+from portage import cvstree, os |
132 |
+from portage.package.ebuild.digestgen import digestgen |
133 |
|
134 |
class Changes(ChangesBase): |
135 |
'''Class object to scan and hold the resultant data |
136 |
@@ -81,3 +82,11 @@ class Changes(ChangesBase): |
137 |
"* Files with headers will" |
138 |
" cause the manifests to be changed and committed separately.") |
139 |
|
140 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, broken_changelog_manifests): |
141 |
+ if myupdates or myremoved: |
142 |
+ for x in sorted(vcs_files_to_cps( |
143 |
+ chain(myupdates, myremoved, mymanifests), |
144 |
+ scanner.repolevel, scanner.reposplit, scanner.categories)): |
145 |
+ self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
146 |
+ digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
147 |
+ |
148 |
|
149 |
diff --git a/pym/repoman/modules/vcs/git/changes.py b/pym/repoman/modules/vcs/git/changes.py |
150 |
index f159298..1970b3a 100644 |
151 |
--- a/pym/repoman/modules/vcs/git/changes.py |
152 |
+++ b/pym/repoman/modules/vcs/git/changes.py |
153 |
@@ -4,6 +4,9 @@ Git module Changes class submodule |
154 |
|
155 |
from repoman.modules.vcs.changes import ChangesBase |
156 |
from repoman._subprocess import repoman_popen |
157 |
+from repoman._portage import portage |
158 |
+from portage import os |
159 |
+from portage.package.ebuild.digestgen import digestgen |
160 |
|
161 |
|
162 |
class Changes(ChangesBase): |
163 |
@@ -54,3 +57,9 @@ class Changes(ChangesBase): |
164 |
self._unadded = ["./" + elem[:-1] for elem in unadded] |
165 |
del unadded |
166 |
return self._unadded |
167 |
+ |
168 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, broken_changelog_manifests): |
169 |
+ if broken_changelog_manifests: |
170 |
+ for x in broken_changelog_manifests: |
171 |
+ self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
172 |
+ digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
173 |
|
174 |
diff --git a/pym/repoman/modules/vcs/hg/changes.py b/pym/repoman/modules/vcs/hg/changes.py |
175 |
index 311ca12..2667829 100644 |
176 |
--- a/pym/repoman/modules/vcs/hg/changes.py |
177 |
+++ b/pym/repoman/modules/vcs/hg/changes.py |
178 |
@@ -4,6 +4,9 @@ Mercurial module Changes class submodule |
179 |
|
180 |
from repoman.modules.vcs.changes import ChangesBase |
181 |
from repoman._subprocess import repoman_popen |
182 |
+from repoman._portage import portage |
183 |
+from portage import os |
184 |
+from portage.package.ebuild.digestgen import digestgen |
185 |
|
186 |
|
187 |
class Changes(ChangesBase): |
188 |
@@ -62,3 +65,9 @@ class Changes(ChangesBase): |
189 |
del deleted |
190 |
return self._deleted |
191 |
|
192 |
+ |
193 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, broken_changelog_manifests): |
194 |
+ if broken_changelog_manifests: |
195 |
+ for x in broken_changelog_manifests: |
196 |
+ self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
197 |
+ digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
198 |
|
199 |
diff --git a/pym/repoman/modules/vcs/settings.py b/pym/repoman/modules/vcs/settings.py |
200 |
index f51c3b2..9338a81 100644 |
201 |
--- a/pym/repoman/modules/vcs/settings.py |
202 |
+++ b/pym/repoman/modules/vcs/settings.py |
203 |
@@ -13,8 +13,10 @@ from repoman.qa_tracker import QATracker |
204 |
class VCSSettings(object): |
205 |
'''Holds various VCS settings''' |
206 |
|
207 |
- def __init__(self, options=None, repoman_settings=None): |
208 |
+ def __init__(self, options=None, repoman_settings=None, repo_settings=None): |
209 |
self.options = options |
210 |
+ self.repoman_settings = repoman_settings |
211 |
+ self.repo_settings = repo_settings |
212 |
if options.vcs: |
213 |
if options.vcs in module_names: |
214 |
self.vcs = options.vcs |
215 |
@@ -89,5 +91,5 @@ class VCSSettings(object): |
216 |
def changes(self): |
217 |
if not self._changes: |
218 |
changes = self.module_controller.get_class('%s_changes' % self.vcs) |
219 |
- self._changes = changes(self.options) |
220 |
+ self._changes = changes(self.options, self.repo_settings) |
221 |
return self._changes |
222 |
|
223 |
diff --git a/pym/repoman/modules/vcs/svn/changes.py b/pym/repoman/modules/vcs/svn/changes.py |
224 |
index ffe19c1..87132f0 100644 |
225 |
--- a/pym/repoman/modules/vcs/svn/changes.py |
226 |
+++ b/pym/repoman/modules/vcs/svn/changes.py |
227 |
@@ -2,8 +2,16 @@ |
228 |
Subversion module Changes class submodule |
229 |
''' |
230 |
|
231 |
+import chain |
232 |
+ |
233 |
from repoman.modules.vcs.changes import ChangesBase |
234 |
from repoman._subprocess import repoman_popen |
235 |
+from repoman._subprocess import repoman_getstatusoutput |
236 |
+from repoman.modules.vcs.vcs import vcs_files_to_cps |
237 |
+from repoman._portage import portage |
238 |
+from portage import os |
239 |
+from portage.output import green |
240 |
+from portage.package.ebuild.digestgen import digestgen |
241 |
|
242 |
|
243 |
class Changes(ChangesBase): |
244 |
@@ -106,3 +114,12 @@ class Changes(ChangesBase): |
245 |
"* Files with headers will" |
246 |
" cause the manifests to be changed and committed separately.") |
247 |
|
248 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, broken_changelog_manifests): |
249 |
+ if myupdates or myremoved: |
250 |
+ for x in sorted(vcs_files_to_cps( |
251 |
+ chain(myupdates, myremoved, mymanifests), |
252 |
+ self.scanner.repolevel, self.scanner.reposplit, self.scanner.categories)): |
253 |
+ self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
254 |
+ digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
255 |
+ |
256 |
+ |