| #!/usr/bin/env python3 |
| # |
| # Copyright BitBake Contributors |
| # |
| # SPDX-License-Identifier: GPL-2.0-only |
| # |
| |
| import os |
| import sys,logging |
| import argparse |
| import warnings |
| warnings.simplefilter("default") |
| |
| sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), "lib")) |
| |
| import prserv |
| import prserv.serv |
| |
| VERSION = "1.1.0" |
| |
| PRHOST_DEFAULT="0.0.0.0" |
| PRPORT_DEFAULT=8585 |
| |
| def main(): |
| parser = argparse.ArgumentParser( |
| description="BitBake PR Server. Version=%s" % VERSION, |
| formatter_class=argparse.RawTextHelpFormatter) |
| |
| parser.add_argument( |
| "-f", |
| "--file", |
| default="prserv.sqlite3", |
| help="database filename (default: prserv.sqlite3)", |
| ) |
| parser.add_argument( |
| "-l", |
| "--log", |
| default="prserv.log", |
| help="log filename(default: prserv.log)", |
| ) |
| parser.add_argument( |
| "--loglevel", |
| default="INFO", |
| help="logging level, i.e. CRITICAL, ERROR, WARNING, INFO, DEBUG", |
| ) |
| parser.add_argument( |
| "--start", |
| action="store_true", |
| help="start daemon", |
| ) |
| parser.add_argument( |
| "--stop", |
| action="store_true", |
| help="stop daemon", |
| ) |
| parser.add_argument( |
| "--host", |
| help="ip address to bind", |
| default=PRHOST_DEFAULT, |
| ) |
| parser.add_argument( |
| "--port", |
| type=int, |
| default=PRPORT_DEFAULT, |
| help="port number (default: 8585)", |
| ) |
| parser.add_argument( |
| "-r", |
| "--read-only", |
| action="store_true", |
| help="open database in read-only mode", |
| ) |
| |
| args = parser.parse_args() |
| prserv.init_logger(os.path.abspath(args.log), args.loglevel) |
| |
| if args.start: |
| ret=prserv.serv.start_daemon(args.file, args.host, args.port, os.path.abspath(args.log), args.read_only) |
| elif args.stop: |
| ret=prserv.serv.stop_daemon(args.host, args.port) |
| else: |
| ret=parser.print_help() |
| return ret |
| |
| if __name__ == "__main__": |
| try: |
| ret = main() |
| except Exception: |
| ret = 1 |
| import traceback |
| traceback.print_exc() |
| sys.exit(ret) |
| |