/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/config.py

  • Committer: Vincent Ladeuil
  • Date: 2009-12-15 15:05:26 UTC
  • mto: (4905.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 4906.
  • Revision ID: v.ladeuil+lp@free.fr-20091215150526-5opw59co07f7uhz3
Implement config.get_user_option_as_list.

* bzrlib/tests/test_config.py:
(TestGetConfig.test_get_user_option_as_list): 

* bzrlib/config.py:
(Config.get_user_option_as_list): A typed accessor.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2007, 2008 Canonical Ltd
2
2
#   Authors: Robert Collins <robert.collins@canonical.com>
3
3
#            and others
4
4
#
193
193
            interpreted as a boolean. Returns True or False otherwise.
194
194
        """
195
195
        s = self._get_user_option(option_name)
196
 
        if s is None:
197
 
            # The option doesn't exist
198
 
            return None
199
 
        val = ui.bool_from_string(s)
200
 
        if val is None:
201
 
            # The value can't be interpreted as a boolean
202
 
            trace.warning('Value "%s" is not a boolean for "%s"',
203
 
                          s, option_name)
204
 
        return val
 
196
        return ui.bool_from_string(s)
205
197
 
206
198
    def get_user_option_as_list(self, option_name):
207
199
        """Get a generic option as a list - no special process, no default.
333
325
                path = 'bzr'
334
326
            return path
335
327
 
336
 
    def suppress_warning(self, warning):
337
 
        """Should the warning be suppressed or emitted.
338
 
 
339
 
        :param warning: The name of the warning being tested.
340
 
 
341
 
        :returns: True if the warning should be suppressed, False otherwise.
342
 
        """
343
 
        warnings = self.get_user_option_as_list('suppress_warnings')
344
 
        if warnings is None or warning not in warnings:
345
 
            return False
346
 
        else:
347
 
            return True
348
 
 
349
328
 
350
329
class IniBasedConfig(Config):
351
330
    """A configuration policy that draws from ini files."""
518
497
        self._write_config_file()
519
498
 
520
499
    def _write_config_file(self):
521
 
        path = self._get_filename()
522
 
        f = open(path, 'wb')
523
 
        osutils.copy_ownership_from_path(path)
 
500
        f = open(self._get_filename(), 'wb')
524
501
        self._get_parser().write(f)
525
502
        f.close()
526
503
 
820
797
            os.mkdir(parent_dir)
821
798
        trace.mutter('creating config directory: %r', path)
822
799
        os.mkdir(path)
823
 
        osutils.copy_ownership_from_path(path)
824
800
 
825
801
 
826
802
def config_dir():
877
853
 
878
854
    This doesn't implicitly create it.
879
855
 
880
 
    On Windows it's in the config directory; elsewhere it's /var/crash
881
 
    which may be monitored by apport.  It can be overridden by
882
 
    $APPORT_CRASH_DIR.
 
856
    On Windows it's in the config directory; elsewhere in the XDG cache directory.
883
857
    """
884
858
    if sys.platform == 'win32':
885
859
        return osutils.pathjoin(config_dir(), 'Crash')
886
860
    else:
887
 
        # XXX: hardcoded in apport_python_hook.py; therefore here too -- mbp
888
 
        # 2010-01-31
889
 
        return os.environ.get('APPORT_CRASH_DIR', '/var/crash')
 
861
        return osutils.pathjoin(xdg_cache_dir(), 'crash')
890
862
 
891
863
 
892
864
def xdg_cache_dir():
1417
1389
 
1418
1390
 
1419
1391
class PlainTextCredentialStore(CredentialStore):
1420
 
    __doc__ = """Plain text credential store for the authentication.conf file"""
 
1392
    """Plain text credential store for the authentication.conf file."""
1421
1393
 
1422
1394
    def decode_password(self, credentials):
1423
1395
        """See CredentialStore.decode_password."""
1512
1484
 
1513
1485
    def _get_config_file(self):
1514
1486
        try:
1515
 
            return StringIO(self._transport.get_bytes(self._filename))
 
1487
            return self._transport.get(self._filename)
1516
1488
        except errors.NoSuchFile:
1517
1489
            return StringIO()
1518
1490