self.config['sima']['db_file'] = join(self.config['sima']['var_dir'], 'sima.db')
def control_facc(self):
- """TODO: redundant with startopt cli args controls
+ """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)
ok = False
else:
if not access(ftochk, W_OK):
- self.log.critical('no write access to "{0}" ({1}))'.format(ftochk, op))
+ 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)
def control_mod(self):
# -*- coding: utf-8 -*-
-# Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Jack Kaliko <kaliko@azylum.org>
#
# This file is part of sima
#
from .utils import Wfile, Rfile, Wdir
-USAGE = """USAGE: %prog [--help] [options]"""
DESCRIPTION = """
-sima automagicaly queue new tracks in MPD playlist.
-All command line options will override their equivalent in configuration
-file.
-"""
+MPD_sima automagicaly queue new tracks in MPD playlist.
+Command line options override their equivalent in configuration file."""
def clean_dict(to_clean):
Declare options in ArgumentParser object.
"""
self.parser = ArgumentParser(description=DESCRIPTION,
- usage='%(prog)s [options]',
- prog=self.info.get('prog'),
- epilog='Happy Listening',
- )
+ prog=self.info.get('prog'),
+ epilog='Happy Listening',
+ )
self.parser.add_argument('--version', action='version',
- version='%(prog)s {version}'.format(**self.info))
+ version='%(prog)s {version}'.format(**self.info))
# Add all options declare in OPTS
for opt in OPTS:
opt_names = opt.pop('sw')
# -*- coding: utf-8 -*-
#
-# Copyright (c) 2010, 2011, 2013, 2014 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2010, 2011, 2013, 2014, 2015 Jack Kaliko <kaliko@azylum.org>
#
# This file is part of sima
#
"""Is file writable
"""
def checks(self):
+ if isdir(self._file):
+ self.parser.error('need a file not a directory: {}'.format(self._file))
if not exists(self._dir):
#raise ArgumentError(self, '"{0}" does not exist'.format(self._dir))
- self.parser.error('file does not exist: {0}'.format(self._dir))
+ self.parser.error('directory does not exist: {0}'.format(self._dir))
if not exists(self._file):
# Is parent directory writable then
if not access(self._dir, W_OK):