~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/config.py

  • Committer: Robert Collins
  • Date: 2005-12-12 22:34:21 UTC
  • Revision ID: robertc@robertcollins.net-20051212223421-c0f6e7a7fae0b5ee
Bugfix to source testing logic to get the right path when .py is returned by __file__

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
 
61
61
import bzrlib
62
62
import bzrlib.errors as errors
63
 
from bzrlib.osutils import pathjoin
64
 
from bzrlib.trace import mutter
65
63
import bzrlib.util.configobj.configobj as configobj
66
64
from StringIO import StringIO
67
65
 
350
348
        """Save option and its value in the configuration."""
351
349
        # FIXME: RBC 20051029 This should refresh the parser and also take a
352
350
        # file lock on branches.conf.
353
 
        conf_dir = os.path.dirname(self._get_filename())
354
 
        ensure_config_dir_exists(conf_dir)
 
351
        if not os.path.isdir(os.path.dirname(self._get_filename())):
 
352
            os.mkdir(os.path.dirname(self._get_filename()))
355
353
        location = self.location
356
354
        if location.endswith('/'):
357
355
            location = location[:-1]
410
408
        return self._get_location_config()._post_commit()
411
409
 
412
410
 
413
 
def ensure_config_dir_exists(path=None):
414
 
    """Make sure a configuration directory exists.
415
 
    This makes sure that the directory exists.
416
 
    On windows, since configuration directories are 2 levels deep,
417
 
    it makes sure both the directory and the parent directory exists.
418
 
    """
419
 
    if path is None:
420
 
        path = config_dir()
421
 
    if not os.path.isdir(path):
422
 
        if sys.platform == 'win32':
423
 
            parent_dir = os.path.dirname(path)
424
 
            if not os.path.isdir(parent_dir):
425
 
                mutter('creating config parent directory: %r', parent_dir)
426
 
            os.mkdir(parent_dir)
427
 
        mutter('creating config directory: %r', path)
428
 
        os.mkdir(path)
429
 
 
430
 
 
431
411
def config_dir():
432
412
    """Return per-user configuration directory.
433
413
 
443
423
            base = os.environ.get('HOME', None)
444
424
        if base is None:
445
425
            raise BzrError('You must have one of BZR_HOME, APPDATA, or HOME set')
446
 
        return pathjoin(base, 'bazaar', '2.0')
 
426
        return os.path.join(base, 'bazaar', '2.0')
447
427
    else:
448
428
        # cygwin, linux, and darwin all have a $HOME directory
449
429
        if base is None:
450
430
            base = os.path.expanduser("~")
451
 
        return pathjoin(base, ".bazaar")
 
431
        return os.path.join(base, ".bazaar")
452
432
 
453
433
 
454
434
def config_filename():
455
435
    """Return per-user configuration ini file filename."""
456
 
    return pathjoin(config_dir(), 'bazaar.conf')
 
436
    return os.path.join(config_dir(), 'bazaar.conf')
457
437
 
458
438
 
459
439
def branches_config_filename():
460
440
    """Return per-user configuration ini file filename."""
461
 
    return pathjoin(config_dir(), 'branches.conf')
 
441
    return os.path.join(config_dir(), 'branches.conf')
462
442
 
463
443
 
464
444
def _auto_user_id():