--- /dev/null
+require 'yaml'
+
+class Configuration
+
+ USERCONF_PATH = ENV['HOME'] + '/.mailshears.conf.yml'
+
+ def initialize()
+ cfg = self.default_configuration()
+
+ # Now, load the user configuration which will override the
+ # variables defined above.
+ begin
+ user_config = Config.new(YAML.load(File.open(USERCONF_PATH)))
+ cfg.update!(user_config)
+ rescue LoadError
+ # If the user config file doesn't exist, whatever.
+ end
+
+ @dict = cfg
+ end
+
+
+ def method_missing(sym, *args)
+ # Replace all missing method calls with dictionary lookups.
+ return @dict[sym]
+ end
+
+
+ private;
+
+ def default_configuration()
+ d = {}
+
+ d['i_mean_business'] = false
+
+ d['dbhost'] = 'localhost'
+ d['dbport'] = 5432
+ d['dbopts'] = ''
+ d['dbtty'] = ''
+ d['dbuser'] = 'postgres'
+ d['dbpass'] = ''
+ d['dbname'] = 'postfix'
+
+ d['plugins'] = ['dovecot_mailstore', 'roundcube_db']
+
+ d['mail_root'] = '/var/spool/mail/vhosts'
+
+ d['roundcube_dbhost'] = 'localhost'
+ d['roundcube_dbport'] = 5432
+ d['roundcube_dbopts'] = ''
+ d['roundcube_dbtty'] = ''
+ d['roundcube_dbuser'] = 'postgres'
+ d['roundcube_dbpass'] = ''
+ d['roundcube_dbname'] = 'roundcube'
+
+ return d
+ end
+
+end