- def get_pw(self):
- try:
- self.config.getboolean('MPD', 'password')
- self.log.debug('No password set, proceeding without ' +
- 'authentication...')
- return None
- except ValueError:
- # ValueError if password not a boolean, hence an actual password.
- pwd = self.config.get('MPD', 'password')
- if not pwd:
- self.log.debug('Password set as an empty string.')
- return None
- return pwd
+ # Create directories
+ data_dir = self.config['sima']['var_dir']
+ if not isdir(data_dir):
+ self.log.trace('Creating "{}"'.format(data_dir))
+ makedirs(data_dir)
+ chmod(data_dir, 0o700)
+
+ def control_facc(self):
+ """Controls file access.
+ This is relevant only for file provided through the configuration file
+ since files provided on the command line are already checked with
+ argparse.
+ """
+ ok = True
+ for op, ftochk in [('logfile', self.config.get('log', 'logfile')),
+ ('pidfile', self.config.get('daemon', 'pidfile')),]:
+ if not ftochk:
+ continue
+ if isdir(ftochk):
+ self.log.critical('Need a file not a directory: "%s"', ftochk)
+ ok = False
+ if not exists(ftochk):
+ # Is parent directory writable then
+ filedir = dirname(ftochk)
+ if not access(filedir, W_OK):
+ self.log.critical('no write access to "%s" (%s)', filedir, op)
+ ok = False
+ else:
+ if not access(ftochk, W_OK):
+ self.log.critical('no write access to "%s" (%s)', ftochk, op)
+ ok = False
+ if not ok:
+ if exists(self.conf_file):
+ self.log.warning('Try to check the configuration file: %s', self.conf_file)
+ sys.exit(2)