mirror of
https://github.com/pulb/mailnag.git
synced 2026-05-07 01:07:46 +02:00
added --quiet commandline option
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
from gi.repository import GObject, GLib
|
||||
from dbus.mainloop.glib import DBusGMainLoop
|
||||
import threading
|
||||
import argparse
|
||||
import logging
|
||||
import logging.handlers
|
||||
import os
|
||||
@@ -40,6 +41,8 @@ from common.subproc import terminate_subprocesses
|
||||
from daemon.mailchecker import MailChecker
|
||||
from daemon.idlers import IdlerRunner
|
||||
|
||||
PROGNAME = 'mailnagd'
|
||||
|
||||
LOG_LEVEL = logging.DEBUG
|
||||
LOG_FORMAT = '%(levelname)s (%(asctime)s): %(message)s'
|
||||
LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
|
||||
@@ -128,16 +131,32 @@ def cleanup():
|
||||
os._exit(os.EX_SOFTWARE)
|
||||
|
||||
|
||||
def init_logging():
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(prog=PROGNAME)
|
||||
parser.add_argument('--quiet', action = 'store_true',
|
||||
help = "don't print log messages to stdout")
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def init_logging(enable_stdout = True):
|
||||
logging.basicConfig(
|
||||
format = LOG_FORMAT,
|
||||
datefmt = LOG_DATE_FORMAT,
|
||||
level = LOG_LEVEL)
|
||||
|
||||
logger = logging.getLogger('')
|
||||
|
||||
syslog_handler = logging.handlers.SysLogHandler(address='/dev/log')
|
||||
syslog_handler.setLevel(LOG_LEVEL)
|
||||
syslog_handler.setFormatter(logging.Formatter(LOG_FORMAT, LOG_DATE_FORMAT))
|
||||
logging.getLogger('').addHandler(syslog_handler)
|
||||
|
||||
stdout_handler = logger.handlers[0]
|
||||
|
||||
logger.addHandler(syslog_handler)
|
||||
|
||||
if not enable_stdout:
|
||||
logger.removeHandler(stdout_handler)
|
||||
|
||||
|
||||
def sigterm_handler(data):
|
||||
@@ -179,19 +198,22 @@ def unload_plugins():
|
||||
def main():
|
||||
global mainloop, start_thread
|
||||
|
||||
set_procname("mailnagd")
|
||||
set_procname(PROGNAME)
|
||||
GObject.threads_init()
|
||||
DBusGMainLoop(set_as_default = True)
|
||||
GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGTERM,
|
||||
sigterm_handler, None)
|
||||
|
||||
# Get commandline arguments
|
||||
args = get_args()
|
||||
|
||||
# shut down an (possibly) already running Mailnag daemon
|
||||
# (must be called before instantiation of the DBUSService).
|
||||
shutdown_existing_instance()
|
||||
|
||||
# Note: don't start logging before an existing Mailnag
|
||||
# instance has been shut down completely (will corrupt logfile).
|
||||
init_logging()
|
||||
init_logging(not args.quiet)
|
||||
|
||||
try:
|
||||
cfg = read_config()
|
||||
|
||||
Reference in New Issue
Block a user