1 |
commit: c973139bcda1e447428c92fb33304cbe38a34eae |
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: Mon Mar 7 21:21:35 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=c973139b |
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 | 14 +++++++++++--- |
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(+), 20 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..39499ab 100644 |
119 |
--- a/pym/repoman/modules/vcs/cvs/changes.py |
120 |
+++ b/pym/repoman/modules/vcs/cvs/changes.py |
121 |
@@ -1,13 +1,13 @@ |
122 |
''' |
123 |
CVS module Changes class submodule |
124 |
''' |
125 |
- |
126 |
+import chain |
127 |
import re |
128 |
|
129 |
from repoman._portage import portage |
130 |
from repoman.modules.vcs.changes import ChangesBase |
131 |
-from portage import cvstree |
132 |
- |
133 |
+from portage import cvstree, os |
134 |
+from portage.package.ebuild.digestgen import digestgen |
135 |
|
136 |
class Changes(ChangesBase): |
137 |
'''Class object to scan and hold the resultant data |
138 |
@@ -81,3 +81,11 @@ class Changes(ChangesBase): |
139 |
"* Files with headers will" |
140 |
" cause the manifests to be changed and committed separately.") |
141 |
|
142 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, broken_changelog_manifests): |
143 |
+ if myupdates or myremoved: |
144 |
+ for x in sorted(vcs_files_to_cps( |
145 |
+ chain(myupdates, myremoved, mymanifests), |
146 |
+ scanner.repolevel, scanner.reposplit, scanner.categories)): |
147 |
+ self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
148 |
+ digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
149 |
+ |
150 |
|
151 |
diff --git a/pym/repoman/modules/vcs/git/changes.py b/pym/repoman/modules/vcs/git/changes.py |
152 |
index f159298..1970b3a 100644 |
153 |
--- a/pym/repoman/modules/vcs/git/changes.py |
154 |
+++ b/pym/repoman/modules/vcs/git/changes.py |
155 |
@@ -4,6 +4,9 @@ Git module Changes class submodule |
156 |
|
157 |
from repoman.modules.vcs.changes import ChangesBase |
158 |
from repoman._subprocess import repoman_popen |
159 |
+from repoman._portage import portage |
160 |
+from portage import os |
161 |
+from portage.package.ebuild.digestgen import digestgen |
162 |
|
163 |
|
164 |
class Changes(ChangesBase): |
165 |
@@ -54,3 +57,9 @@ class Changes(ChangesBase): |
166 |
self._unadded = ["./" + elem[:-1] for elem in unadded] |
167 |
del unadded |
168 |
return self._unadded |
169 |
+ |
170 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, broken_changelog_manifests): |
171 |
+ if broken_changelog_manifests: |
172 |
+ for x in broken_changelog_manifests: |
173 |
+ self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
174 |
+ digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
175 |
|
176 |
diff --git a/pym/repoman/modules/vcs/hg/changes.py b/pym/repoman/modules/vcs/hg/changes.py |
177 |
index 311ca12..2667829 100644 |
178 |
--- a/pym/repoman/modules/vcs/hg/changes.py |
179 |
+++ b/pym/repoman/modules/vcs/hg/changes.py |
180 |
@@ -4,6 +4,9 @@ Mercurial module Changes class submodule |
181 |
|
182 |
from repoman.modules.vcs.changes import ChangesBase |
183 |
from repoman._subprocess import repoman_popen |
184 |
+from repoman._portage import portage |
185 |
+from portage import os |
186 |
+from portage.package.ebuild.digestgen import digestgen |
187 |
|
188 |
|
189 |
class Changes(ChangesBase): |
190 |
@@ -62,3 +65,9 @@ class Changes(ChangesBase): |
191 |
del deleted |
192 |
return self._deleted |
193 |
|
194 |
+ |
195 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, broken_changelog_manifests): |
196 |
+ if broken_changelog_manifests: |
197 |
+ for x in broken_changelog_manifests: |
198 |
+ self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
199 |
+ digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
200 |
|
201 |
diff --git a/pym/repoman/modules/vcs/settings.py b/pym/repoman/modules/vcs/settings.py |
202 |
index f51c3b2..9338a81 100644 |
203 |
--- a/pym/repoman/modules/vcs/settings.py |
204 |
+++ b/pym/repoman/modules/vcs/settings.py |
205 |
@@ -13,8 +13,10 @@ from repoman.qa_tracker import QATracker |
206 |
class VCSSettings(object): |
207 |
'''Holds various VCS settings''' |
208 |
|
209 |
- def __init__(self, options=None, repoman_settings=None): |
210 |
+ def __init__(self, options=None, repoman_settings=None, repo_settings=None): |
211 |
self.options = options |
212 |
+ self.repoman_settings = repoman_settings |
213 |
+ self.repo_settings = repo_settings |
214 |
if options.vcs: |
215 |
if options.vcs in module_names: |
216 |
self.vcs = options.vcs |
217 |
@@ -89,5 +91,5 @@ class VCSSettings(object): |
218 |
def changes(self): |
219 |
if not self._changes: |
220 |
changes = self.module_controller.get_class('%s_changes' % self.vcs) |
221 |
- self._changes = changes(self.options) |
222 |
+ self._changes = changes(self.options, self.repo_settings) |
223 |
return self._changes |
224 |
|
225 |
diff --git a/pym/repoman/modules/vcs/svn/changes.py b/pym/repoman/modules/vcs/svn/changes.py |
226 |
index ffe19c1..87132f0 100644 |
227 |
--- a/pym/repoman/modules/vcs/svn/changes.py |
228 |
+++ b/pym/repoman/modules/vcs/svn/changes.py |
229 |
@@ -2,8 +2,16 @@ |
230 |
Subversion module Changes class submodule |
231 |
''' |
232 |
|
233 |
+import chain |
234 |
+ |
235 |
from repoman.modules.vcs.changes import ChangesBase |
236 |
from repoman._subprocess import repoman_popen |
237 |
+from repoman._subprocess import repoman_getstatusoutput |
238 |
+from repoman.modules.vcs.vcs import vcs_files_to_cps |
239 |
+from repoman._portage import portage |
240 |
+from portage import os |
241 |
+from portage.output import green |
242 |
+from portage.package.ebuild.digestgen import digestgen |
243 |
|
244 |
|
245 |
class Changes(ChangesBase): |
246 |
@@ -106,3 +114,12 @@ class Changes(ChangesBase): |
247 |
"* Files with headers will" |
248 |
" cause the manifests to be changed and committed separately.") |
249 |
|
250 |
+ def digest_regen(self, myupdates, myremoved, mymanifests, scanner, broken_changelog_manifests): |
251 |
+ if myupdates or myremoved: |
252 |
+ for x in sorted(vcs_files_to_cps( |
253 |
+ chain(myupdates, myremoved, mymanifests), |
254 |
+ self.scanner.repolevel, self.scanner.reposplit, self.scanner.categories)): |
255 |
+ self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x) |
256 |
+ digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb) |
257 |
+ |
258 |
+ |