| #!/usr/bin/env python3 |
| # SPDX-License-Identifier: GPL2.0 |
| # Copyright Thomas Gleixner <tglx@linutronix.de> |
| |
| 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) |