feedwarrior

Slim, portable tooling for creating and distributing decentralized append logs
git clone git://git.defalsify.org/logwarrior.git
Info | Log | Files | Refs | README | LICENSE

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)