Added file filter to files.search
[findit] / src / config.py
1 #!/usr/bin/env python
2 # -*-coding: utf-8 -*-
3 # vim: sw=4 ts=4 expandtab ai
4
5 CONF = '''
6 [DEFAULT]
7 search = 'files'
8 outtype = 'out_diabar'
9
10 [files]
11 ignore_dirs = ['/dev', '/proc', '/sys', '/mnt']
12 start_path = '..'
13 count = 7
14 filter = *.pyc;*.pyo
15
16 [debs]
17 count = 12
18 '''
19
20 from ConfigParser import ConfigParser, NoOptionError
21
22 class FindITConfig(ConfigParser):
23     def __init__(self, config):
24         ConfigParser.__init__(self)
25         if isinstance(config, basestring):
26             self.read(config)
27         else:
28             self.readfp(config)
29         self._section = None
30
31     def __getitem__(self, item):
32         try:
33             return self.get('DEFAULT', item)
34         except NoOptionError:
35             if self.has_section(item):
36                 self._section = item
37                 return self
38             else:
39                 return self.get(self._section, item)
40
41     def __setitem__(self, item, value):
42         return self.set(self._section, item, str(value))
43
44     def get(self, section, option):
45         value = ConfigParser.get(self, section, option)
46         try:
47             return eval(value)
48         except SyntaxError:
49             return value
50
51 from StringIO import StringIO
52 config = FindITConfig(StringIO(CONF))
53