#!/usr/bin/env python3 # SPDX-License-Identifier: GPL2.0 # Copyright Thomas Gleixner from argparse import ArgumentParser from tipbot.daemon import tipbot from tipbot.util import logger import yaml import sys import os if __name__ == '__main__': parser = ArgumentParser(description='TIP commit mail bot') parser.add_argument('-l', '--linusdir', metavar='linusdir', default='../linus', help='linus tree directory') parser.add_argument('-t', '--tipdir', metavar='tipdir', default='../tip', help='tip tree directory') parser.add_argument('-T', '--test', dest='test', action='store_true', help='Send mail to self') parser.add_argument('-m', '--mbox', dest='mbox', type=str, default=None, help='output to mbox') parser.add_argument('-S', '--smtp', dest='smtp', action='store_true', help='output to smtp (localhost)') parser.add_argument('-f', '--forcelinus', dest='forcelinus', action='store_true', help='force update of linus tree') parser.add_argument('-L', '--limit', dest='limit', type=int, default=100, help='Limit the amount of mail to send in one go') parser.add_argument('-p', '--pause', dest='pause', type=int, default=5, help='Pause between checks in minutes') parser.add_argument('-k', '--known_commits', dest='known_commits', default='known_commits', help='Directory to store known commits files') parser.add_argument('-s', '--syslog', dest='syslog', action='store_true', help='Use syslog for logging') parser.add_argument('-c', '--config', dest='config', default='/home/tipbot/tipbot.yaml', help='Config file') parser.add_argument('-v', '--verbose', dest='verbose', action='store_true', help='Verbose logging') args = parser.parse_args() logger = logger(use_syslog=args.syslog, verbose = True) try: cfg = yaml.load(open(args.config)) for k, val in cfg.items(): vars(args)[k] = val logger.verbose = args.verbose logger.use_syslog = args.syslog os.chdir(args.workdir) bot = tipbot(args, logger) res = bot.run() except Exception as ex: logger.log_exception(ex, 'Unhandled exception in main') res = 1 sys.exit(res)