config.py (1772B)
1 # standard imports 2 import os 3 import configparser 4 import hashlib 5 import logging 6 7 # third party imports 8 from xdg import BaseDirectory 9 10 logg = logging.getLogger() 11 12 13 class config: 14 15 def __init__(self, filename=None): 16 self.data_dir = BaseDirectory.save_data_path('feedwarrior') 17 self.task_dir = os.path.join(os.environ.get('HOME'), '.task') 18 cp = configparser.ConfigParser() 19 20 config_paths = [filename] 21 config_loaded = False 22 23 # TODO: this make no sense 24 # if filename == None: 25 config_paths += BaseDirectory.load_config_paths('feedwarrior') 26 27 if filename != None: 28 #for p in config_paths: 29 for config_path in config_paths: 30 #config_path = os.path.join(p, filename) 31 r = cp.read(config_path) 32 if len(r) == 0: 33 logg.warning("config file in path {} not found".format(config_path)) 34 continue 35 36 #logg.info('successfully read config {}'.format(p)) 37 logg.info('successfully read config {}'.format(config_path)) 38 config_loaded = True 39 40 if cp.has_option('FEEDWARRIOR', 'datadir'): 41 self.data_dir = cp['FEEDWARRIOR']['datadir'] 42 43 if cp.has_option('FEEDWARRIOR', 'taskdir'): 44 self.task_dir = cp['FEEDWARRIOR']['taskdir'] 45 46 logg.info('using data dir {}'.format(self.data_dir)) 47 logg.info('using task dir {}'.format(self.task_dir)) 48 49 self.feeds_dir = os.path.join(self.data_dir, 'feeds') 50 self.alias_dir = os.path.join(self.feeds_dir, 'names') 51 self.entries_dir = os.path.join(self.data_dir, 'entries') 52 self.hasher = hashlib.sha256 53 54 55 def load_config(filename): 56 return config(filename)