OLD | NEW |
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 Loading... |
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) |
OLD | NEW |