1
0
mirror of https://github.com/spl0k/supysonic.git synced 2024-09-20 03:11:04 +00:00
supysonic/bin/supysonic-watcher

55 lines
1.6 KiB
Plaintext
Raw Normal View History

2014-10-22 16:15:23 +00:00
#!/usr/bin/env python
# coding: utf-8
# This file is part of Supysonic.
# Supysonic is a Python implementation of the Subsonic server API.
#
2019-03-31 12:43:32 +00:00
# Copyright (C) 2014-2019 Alban 'spl0k' Féron
#
2019-03-31 12:43:32 +00:00
# Distributed under terms of the GNU AGPLv3 license.
import logging
from logging.handlers import TimedRotatingFileHandler
from signal import signal, SIGTERM, SIGINT
2017-11-27 21:30:13 +00:00
from supysonic.config import IniConfig
from supysonic.daemon import Daemon
2019-03-31 12:43:32 +00:00
from supysonic.db import init_database, release_database
2019-03-31 12:43:32 +00:00
logger = logging.getLogger('supysonic')
daemon = None
2019-03-31 12:43:32 +00:00
def setup_logging(config):
if config['log_file']:
if config['log_file'] == '/dev/null':
log_handler = logging.NullHandler()
else:
log_handler = TimedRotatingFileHandler(config['log_file'], when = 'midnight')
log_handler.setFormatter(logging.Formatter("%(asctime)s [%(levelname)s] %(message)s"))
else:
log_handler = logging.StreamHandler()
log_handler.setFormatter(logging.Formatter("[%(levelname)s] %(message)s"))
logger.addHandler(log_handler)
if 'log_level' in config:
level = getattr(logging, config['log_level'].upper(), logging.NOTSET)
logger.setLevel(level)
def __terminate(signum, frame):
logger.debug("Got signal %i. Stopping...", signum)
daemon.terminate()
2019-03-31 12:43:32 +00:00
release_database()
if __name__ == "__main__":
2017-11-27 21:30:13 +00:00
config = IniConfig.from_common_locations()
2019-03-31 12:43:32 +00:00
setup_logging(config.DAEMON)
signal(SIGTERM, __terminate)
signal(SIGINT, __terminate)
init_database(config.BASE['database_uri'])
daemon = Daemon(config)
daemon.run()
2019-03-31 12:43:32 +00:00
release_database()