Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: chainedconfigparser.py

Issue 5430129207541760: Issue 1358 - Publish build tools under the MPL 2.0 license (Closed)
Patch Set: Created Sept. 11, 2014, 3:41 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build.py ('k') | chromeDevenvPoller__.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # coding: utf-8 1 # coding: utf-8
2 2
3 # This file is part of the Adblock Plus build tools, 3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # Copyright (C) 2006-2014 Eyeo GmbH 4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # 5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
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
8 # published by the Free Software Foundation.
9 #
10 # Adblock Plus is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
17
18 # Note: These are the base functions common to all packagers, the actual
19 # packagers are implemented in packagerGecko and packagerChrome.
20 6
21 import os, codecs, ConfigParser 7 import os, codecs, ConfigParser
22 8
23 class Item(tuple): 9 class Item(tuple):
24 def __new__(cls, name, value, source): 10 def __new__(cls, name, value, source):
25 result = super(Item, cls).__new__(cls, (name, value)) 11 result = super(Item, cls).__new__(cls, (name, value))
26 result.source = source 12 result.source = source
27 return result 13 return result
28 14
29 class ChainedConfigParser: 15 class ChainedConfigParser:
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 if name not in seen: 105 if name not in seen:
120 seen.add(name) 106 seen.add(name)
121 result.append(Item(name, value, config.source_path)) 107 result.append(Item(name, value, config.source_path))
122 return result 108 return result
123 109
124 def option_source(self, section, option): 110 def option_source(self, section, option):
125 for config in self.chain: 111 for config in self.chain:
126 if config.has_section(section) and config.has_option(section, option): 112 if config.has_section(section) and config.has_option(section, option):
127 return config.source_path 113 return config.source_path
128 raise ConfigParser.NoOptionError(option, section) 114 raise ConfigParser.NoOptionError(option, section)
OLDNEW
« no previous file with comments | « build.py ('k') | chromeDevenvPoller__.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld