Edgewall Software

Ticket #1051: trac-global-config.diff

File trac-global-config.diff, 2.1 KB (added by trac-form@…, 7 years ago)

Patch implementing global configuration "underlay" at <prefix>/share/trac/conf/trac.ini.

  • trac/config.py

     
    1717from __future__ import generators 
    1818 
    1919from ConfigParser import ConfigParser 
    20 import os.path 
     20import os.path, sys 
    2121 
    2222 
    2323class Configuration: 
     
    2828    when the file has changed. 
    2929    """ 
    3030 
    31     def __init__(self, filename): 
     31    def __init__(self, filename, site_filename = = os.path.join(sys.prefix, 'share', 'trac', 'conf', 'trac.ini')): 
    3232        self.filename = filename 
     33        self.site_filename = site_filename 
    3334        self.parser = ConfigParser() 
    3435        self.__defaults = {} 
    3536        self.__lastmtime = 0 
     37        self.__lastsitemtime = 0 
    3638        self.parse_if_needed() 
    3739 
    3840    def get(self, section, name, default=None): 
     
    8183        self.parser.write(open(self.filename, 'w')) 
    8284 
    8385    def parse_if_needed(self): 
    84         if not self.filename: 
    85             return 
    86         modtime = os.path.getmtime(self.filename) 
    87         if modtime > self.__lastmtime: 
    88             self.parser.readfp(open(self.filename)) 
    89             self.__lastmtime = modtime 
     86        files = [] 
     87        if self.site_filename: 
     88            modtime = os.path.getmtime(self.site_filename) 
     89            if modtime > self.__lastsitemtime: 
     90                files.append(self.site_filename) 
     91                self.__lastsitemtime = modtime 
     92        if self.filename: 
     93            modtime = os.path.getmtime(self.filename) 
     94            if modtime > self.__lastmtime: 
     95                files.append(self.filename) 
     96                self.__lastmtime = modtime 
     97        if files: 
     98            self.parser.read(files) 
    9099 
    91100 
    92101def default_dir(name): 
  • trac/test.py

     
    125125        self.db = InMemoryDatabase() 
    126126 
    127127        from trac.config import Configuration 
    128         self.config = Configuration(None) 
     128        self.config = Configuration(None, None) 
    129129 
    130130        from trac.log import logger_factory 
    131131        self.log = logger_factory('test')