~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/rules.py

  • Committer: John Arbash Meinel
  • Date: 2008-08-25 21:50:11 UTC
  • mfrom: (0.11.3 tools)
  • mto: This revision was merged to the branch mainline in revision 3659.
  • Revision ID: john@arbash-meinel.com-20080825215011-de9esmzgkue3e522
Merge in Lukáš's helper scripts.
Update the packaging documents to describe how to do the releases
using bzr-builddeb to package all distro platforms
simultaneously.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Rule-based definition of preferences for selected files in selected branches.
18
18
 
21
21
 
22
22
from bzrlib import (
23
23
    config,
24
 
    commands,
25
24
    errors,
26
25
    globbing,
27
26
    osutils,
36
35
FILE_PREFS_PREFIX = 'name '
37
36
FILE_PREFS_PREFIX_LEN = len(FILE_PREFS_PREFIX)
38
37
 
39
 
# The object providing default rules
40
 
_per_user_searcher = None
41
 
 
42
38
 
43
39
class _RulesSearcher(object):
44
40
    """An object that provides rule-based preferences."""
77
73
        options = {'encoding': 'utf-8'}
78
74
        self._cfg = configobj.ConfigObj(inifile, options=options)
79
75
        sections = self._cfg.keys()
80
 
        patterns = []
81
 
        self.pattern_to_section = {}
82
 
        for s in sections:
83
 
            if s.startswith(FILE_PREFS_PREFIX):
84
 
                file_patterns = commands.shlex_split_unicode(
85
 
                    s[FILE_PREFS_PREFIX_LEN:])
86
 
                patterns.extend(file_patterns)
87
 
                for fp in file_patterns:
88
 
                    self.pattern_to_section[fp] = s
 
76
        patterns = [s[FILE_PREFS_PREFIX_LEN:] for s in sections
 
77
            if s.startswith(FILE_PREFS_PREFIX)]
89
78
        if len(patterns) < len(sections):
90
79
            unknowns = [s for s in sections
91
80
                if not s.startswith(FILE_PREFS_PREFIX)]
103
92
        if pat is None:
104
93
            return ()
105
94
        else:
106
 
            all = self._cfg[self.pattern_to_section[pat]]
 
95
            all = self._cfg[FILE_PREFS_PREFIX + pat]
107
96
            return tuple(all.items())
108
97
 
109
98
    def get_selected_items(self, path, names):
114
103
        if pat is None:
115
104
            return ()
116
105
        else:
117
 
            all = self._cfg[self.pattern_to_section[pat]]
 
106
            all = self._cfg[FILE_PREFS_PREFIX + pat]
118
107
            return tuple((k, all.get(k)) for k in names)
119
108
 
120
109
 
149
138
    return osutils.pathjoin(config.config_dir(), 'rules')
150
139
 
151
140
 
152
 
def reset_rules():
153
 
    global _per_user_searcher
154
 
    _per_user_searcher = _IniBasedRulesSearcher(rules_filename())
155
 
 
156
 
reset_rules()
 
141
# The object providing default rules
 
142
_per_user_searcher = _IniBasedRulesSearcher(rules_filename())