from importlib import __import__ as sima_import
from os.path import isfile
+from os import rename
##
# third parties components
from .utils.config import ConfMan
from .utils.startopt import StartOpt
from .utils.utils import exception_log, SigHup, MPDSimaException
+from .utils.blcli import BLCli
# core plugins
from .plugins.core.history import History
from .plugins.core.mpdoptions import MpdOptions
logger = logging.getLogger('sima')
logfile = config.get('log', 'logfile', fallback=None)
verbosity = config.get('log', 'verbosity')
- set_logger(verbosity, logfile)
+ if sopt.options.get('command'): # disable file logging
+ set_logger(verbosity)
+ else:
+ set_logger(verbosity, logfile)
logger.debug('Command line say: %s', sopt.options)
+ # Create database if not present
+ db_file = config.get('sima', 'db_file')
+ if not isfile(db_file):
+ logger.debug('Creating database in "%s"', db_file)
+ SimaDB(db_path=db_file).create_db()
+ # Migration from v0.17.0
+ dbinfo = SimaDB(db_path=db_file).get_info()
+ if not dbinfo: # v0.17.0 → v0.18+ migration
+ logger.warning('Backing up database!')
+ rename(db_file, db_file + '-old-version-backup')
+ logger.info('Creating an new database in "%s"', db_file)
+ SimaDB(db_path=db_file).create_db()
+
if sopt.options.get('command'):
cmd = sopt.options.get('command')
+ if cmd.startswith('bl-'):
+ BLCli(config, sopt.options)
+ sys.exit(0)
if cmd == "generate-config":
config.write(sys.stdout, space_around_delimiters=True)
sys.exit(0)
config_test(config)
sys.exit(0)
if cmd == "create-db":
- db_file = config.get('sima', 'db_file')
if not isfile(db_file):
logger.info('Creating database in "%s"', db_file)
- open(db_file, 'a').close()
SimaDB(db_path=db_file).create_db()
- if sopt.options.get('create_db', None):
- logger.info('Done, bye...')
else:
logger.info('Database already there, not overwriting %s', db_file)
- sys.exit(0)
-
- # TODO: To remove eventually in next major realese v0.18
- # Create Database
- db_file = config.get('sima', 'db_file')
- if (sopt.options.get('create_db', None)
- or not isfile(db_file)):
- logger.info('Creating database in "%s"', db_file)
- open(db_file, 'a').close()
- SimaDB(db_path=db_file).create_db()
- if sopt.options.get('create_db', None):
logger.info('Done, bye...')
- sys.exit(0)
-
- # TODO: To remove eventually in next major realese v0.18
- if sopt.options.get('generate_config'):
- config.write(sys.stdout, space_around_delimiters=True)
- sys.exit(0)
+ sys.exit(0)
+ if cmd == "purge-history":
+ db_file = config.get('sima', 'db_file')
+ if not isfile(db_file):
+ logger.warning('No db found: %s', db_file)
+ sys.exit(1)
+ SimaDB(db_path=db_file).purge_history(duration=0)
+ sys.exit(0)
logger.info('Starting (%s)...', info.__version__)
sima = core.Sima(config)
def main():
"""Entry point"""
nfo = dict({'version': info.__version__,
- 'prog': 'sima'})
+ 'prog': 'mpd-sima'})
# StartOpt gathers options from command line call (in StartOpt().options)
sopt = StartOpt(nfo)
run(sopt)