Left: | ||
Right: |
OLD | NEW |
---|---|
1 # coding: utf-8 | 1 # coding: utf-8 |
2 | 2 |
3 # This file is part of the Adblock Plus web scripts, | 3 # This file is part of the Adblock Plus web scripts, |
4 # Copyright (C) 2006-2016 Eyeo GmbH | 4 # Copyright (C) 2006-2016 Eyeo GmbH |
5 # | 5 # |
6 # Adblock Plus is free software: you can redistribute it and/or modify | 6 # Adblock Plus is free software: you can redistribute it and/or modify |
7 # it under the terms of the GNU General Public License version 3 as | 7 # it under the terms of the GNU General Public License version 3 as |
8 # published by the Free Software Foundation. | 8 # published by the Free Software Foundation. |
9 # | 9 # |
10 # Adblock Plus is distributed in the hope that it will be useful, | 10 # Adblock Plus is distributed in the hope that it will be useful, |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
128 buildRepository = _defineProperty('buildRepository') | 128 buildRepository = _defineProperty('buildRepository') |
129 nightliesDirectory = _defineProperty('nightliesDirectory') | 129 nightliesDirectory = _defineProperty('nightliesDirectory') |
130 nightliesURL = _defineProperty('nightliesURL') | 130 nightliesURL = _defineProperty('nightliesURL') |
131 downloadsRepo = _defineProperty('downloadsRepo') | 131 downloadsRepo = _defineProperty('downloadsRepo') |
132 downloadsURL = _defineProperty('downloadsURL') | 132 downloadsURL = _defineProperty('downloadsURL') |
133 docsDirectory = _defineProperty('docsDirectory') | 133 docsDirectory = _defineProperty('docsDirectory') |
134 signtool = _defineProperty('signtool') | 134 signtool = _defineProperty('signtool') |
135 certname = _defineProperty('signtool_certname') | 135 certname = _defineProperty('signtool_certname') |
136 dbdir = _defineProperty('signtool_dbdir') | 136 dbdir = _defineProperty('signtool_dbdir') |
137 dbpass = _defineProperty('signtool_dbpass') | 137 dbpass = _defineProperty('signtool_dbpass') |
138 padDirectory = _defineProperty('padDirectory') | |
139 padURL = _defineProperty('padURL') | |
140 padTemplate = _defineProperty('padTemplate') | |
141 | 138 |
142 keyFile = _defineProperty('key', local=True, default='') | 139 keyFile = _defineProperty('key', local=True, default='') |
143 name = _defineProperty('name', local=True) | 140 name = _defineProperty('name', local=True) |
144 galleryID = _defineProperty('galleryID', local=True, default='') | 141 galleryID = _defineProperty('galleryID', local=True, default='') |
145 devbuildGalleryID = _defineProperty('devbuildGalleryID', local=True, default=' ') | 142 devbuildGalleryID = _defineProperty('devbuildGalleryID', local=True, default=' ') |
146 downloadPage = _defineProperty('downloadPage', local=True, default='') | 143 downloadPage = _defineProperty('downloadPage', local=True, default='') |
147 experimental = _defineProperty('experimental', local=True, default='') | 144 experimental = _defineProperty('experimental', local=True, default='') |
148 clientID = _defineProperty('clientID', local=True, default='') | 145 clientID = _defineProperty('clientID', local=True, default='') |
149 clientSecret = _defineProperty('clientSecret', local=True, default='') | 146 clientSecret = _defineProperty('clientSecret', local=True, default='') |
150 refreshToken = _defineProperty('refreshToken', local=True, default='') | 147 refreshToken = _defineProperty('refreshToken', local=True, default='') |
151 pad = _defineProperty('pad', local=True, type='boolean', default=False) | |
152 | 148 |
153 latestRevision = _defineNightlyProperty('latestRevision') | 149 latestRevision = _defineNightlyProperty('latestRevision') |
154 | 150 |
155 def __init__(self, config, nightlyConfig, repositoryName, repository): | 151 def __init__(self, config, nightlyConfig, repositoryName, repository): |
156 """ | 152 """ |
157 Creates a new Configuration instance that is bound to a particular | 153 Creates a new Configuration instance that is bound to a particular |
158 repository. | 154 repository. |
159 """ | 155 """ |
160 | 156 |
161 self.repositoryName = repositoryName | 157 self.repositoryName = repositoryName |
(...skipping 19 matching lines...) Expand all Loading... | |
181 | 177 |
182 if self.nightlyConfig and not self.nightlyConfig.has_section(self.repository Name): | 178 if self.nightlyConfig and not self.nightlyConfig.has_section(self.repository Name): |
183 self.nightlyConfig.add_section(self.repositoryName) | 179 self.nightlyConfig.add_section(self.repositoryName) |
184 | 180 |
185 def __str__(self): | 181 def __str__(self): |
186 """ | 182 """ |
187 Provides a string representation of this configuration | 183 Provides a string representation of this configuration |
188 """ | 184 """ |
189 return self.repositoryName | 185 return self.repositoryName |
190 | 186 |
191 def listContents(self, version='tip'): | |
192 return subprocess.check_output(['hg', '-R', self.repository, 'locate', '-r', version]).splitlines() | |
193 | |
194 def readMetadata(self, version='tip'): | 187 def readMetadata(self, version='tip'): |
195 genericFilename = 'metadata' | 188 genericFilename = 'metadata' |
196 filename = '%s.%s' % (genericFilename, self.type) | 189 filename = '%s.%s' % (genericFilename, self.type) |
197 files = self.listContents(version) | 190 files = subprocess.check_output(['hg', '-R', self.repository, |
191 'locate', '-r', version]).splitlines() | |
198 | 192 |
199 if filename not in files: | 193 if filename not in files: |
200 # some repositories like those for Android and | 194 # some repositories like those for Android and |
201 # Internet Explorer don't have metadata files | 195 # Internet Explorer don't have metadata files |
202 if genericFilename not in files: | 196 if genericFilename not in files: |
203 return None | 197 return None |
204 | 198 |
205 # Fall back to platform-independent metadata file | 199 # Fall back to platform-independent metadata file |
206 filename = genericFilename | 200 filename = genericFilename |
207 | 201 |
208 command = ['hg', '-R', self.repository, 'cat', '-r', version, os.path.join(s elf.repository, filename)] | 202 command = ['hg', '-R', self.repository, 'cat', '-r', version, os.path.join(s elf.repository, filename)] |
209 result = subprocess.check_output(command) | 203 result = subprocess.check_output(command) |
210 | 204 |
211 parser = SafeConfigParser() | 205 parser = SafeConfigParser() |
212 parser.readfp(StringIO(result)) | 206 parser.readfp(StringIO(result)) |
213 | 207 |
214 return parser | 208 return parser |
215 | 209 |
216 @property | 210 def getDownloads(self): |
217 def basename(self): | |
Wladimir Palant
2016/03/08 16:58:14
If I see it correctly, this property is still bein
Sebastian Noack
2016/03/08 17:01:02
If I see it correctly, we introduced that property
Wladimir Palant
2016/03/08 17:34:12
I didn't but there appears to be a separate Nightl
| |
218 metadata = self.readMetadata() | 211 metadata = self.readMetadata() |
219 if metadata: | 212 if metadata: |
220 return metadata.get('general', 'basename') | 213 prefix = metadata.get('general', 'basename') |
221 return os.path.basename(os.path.normpath(self.repository)) | 214 else: |
215 prefix = os.path.basename(os.path.normpath(self.repository)) | |
216 prefix += '-' | |
222 | 217 |
223 def getDownloads(self): | |
224 prefix = self.basename + '-' | |
225 command = ['hg', 'locate', '-R', self.downloadsRepo, '-r', 'default'] | 218 command = ['hg', 'locate', '-R', self.downloadsRepo, '-r', 'default'] |
226 | |
227 for filename in subprocess.check_output(command).splitlines(): | 219 for filename in subprocess.check_output(command).splitlines(): |
228 if filename.startswith(prefix) and filename.endswith(self.packageSuffix): | 220 if filename.startswith(prefix) and filename.endswith(self.packageSuffix): |
229 yield (filename, filename[len(prefix):len(filename) - len(self.packageSu ffix)]) | 221 yield (filename, filename[len(prefix):len(filename) - len(self.packageSu ffix)]) |
230 | 222 |
231 @staticmethod | 223 @staticmethod |
232 def getRepositoryConfigurations(nightlyConfig = None): | 224 def getRepositoryConfigurations(nightlyConfig = None): |
233 """ | 225 """ |
234 Retrieves configuration settings for all repositories | 226 Retrieves configuration settings for all repositories |
235 from the configuration file, where existing repositories | 227 from the configuration file, where existing repositories |
236 are identified by an <id>_repository entry appearing | 228 are identified by an <id>_repository entry appearing |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
416 if not extensions: | 408 if not extensions: |
417 return | 409 return |
418 | 410 |
419 updates = {} | 411 updates = {} |
420 for extension in extensions: | 412 for extension in extensions: |
421 updates[extension['basename']] = { | 413 updates[extension['basename']] = { |
422 "url": extension['updateURL'], | 414 "url": extension['updateURL'], |
423 "version": extension['version'] | 415 "version": extension['version'] |
424 } | 416 } |
425 writeLibabpUpdateManifest(path, updates) | 417 writeLibabpUpdateManifest(path, updates) |
OLD | NEW |