- 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
+ 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 [('log', self.config['log']['logfile']),
+ ('pidfile', self.config['daemon']['pidfile']),]:
+ if not ftochk:
+ continue
+ if isdir(ftochk):
+ self.log.critical('Need a file not a directory: "{}"'.format(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 "{0}" ({1})'.format(filedir, op))
+ ok = False
+ else:
+ if not access(ftochk, W_OK):
+ self.log.critical('no write access to "{0}" ({1})'.format(ftochk, op))
+ ok = False
+ if not ok:
+ if exists(self.conf_file):
+ self.log.warning('Try to check the configuration file: {}'.format(self.conf_file))
+ sys.exit(2)