blob: ad0a0694014c180b4e9c9df7ee1b62b25102d942 [file] [log] [blame]
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001#!/usr/bin/env python3
Brad Bishopc342db32019-05-15 21:57:59 -04002#
Patrick Williams92b42cb2022-09-03 06:53:57 -05003# Copyright BitBake Contributors
4#
Brad Bishopc342db32019-05-15 21:57:59 -04005# SPDX-License-Identifier: GPL-2.0-only
6#
7
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008import os
9import sys,logging
Patrick Williams44b3caf2024-04-12 16:51:14 -050010import argparse
Andrew Geissler5199d832021-09-24 16:47:35 -050011import warnings
12warnings.simplefilter("default")
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013
Patrick Williams44b3caf2024-04-12 16:51:14 -050014sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), "lib"))
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015
16import prserv
17import prserv.serv
18
Patrick Williams44b3caf2024-04-12 16:51:14 -050019VERSION = "1.1.0"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050020
Patrick Williams44b3caf2024-04-12 16:51:14 -050021PRHOST_DEFAULT="0.0.0.0"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050022PRPORT_DEFAULT=8585
23
24def main():
Patrick Williams44b3caf2024-04-12 16:51:14 -050025 parser = argparse.ArgumentParser(
26 description="BitBake PR Server. Version=%s" % VERSION,
27 formatter_class=argparse.RawTextHelpFormatter)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050028
Patrick Williams44b3caf2024-04-12 16:51:14 -050029 parser.add_argument(
30 "-f",
31 "--file",
32 default="prserv.sqlite3",
33 help="database filename (default: prserv.sqlite3)",
34 )
35 parser.add_argument(
36 "-l",
37 "--log",
38 default="prserv.log",
39 help="log filename(default: prserv.log)",
40 )
41 parser.add_argument(
42 "--loglevel",
43 default="INFO",
44 help="logging level, i.e. CRITICAL, ERROR, WARNING, INFO, DEBUG",
45 )
46 parser.add_argument(
47 "--start",
48 action="store_true",
49 help="start daemon",
50 )
51 parser.add_argument(
52 "--stop",
53 action="store_true",
54 help="stop daemon",
55 )
56 parser.add_argument(
57 "--host",
58 help="ip address to bind",
59 default=PRHOST_DEFAULT,
60 )
61 parser.add_argument(
62 "--port",
63 type=int,
64 default=PRPORT_DEFAULT,
65 help="port number (default: 8585)",
66 )
67 parser.add_argument(
68 "-r",
69 "--read-only",
70 action="store_true",
71 help="open database in read-only mode",
72 )
Patrick Williamsc124f4f2015-09-15 14:41:29 -050073
Patrick Williams44b3caf2024-04-12 16:51:14 -050074 args = parser.parse_args()
75 prserv.init_logger(os.path.abspath(args.log), args.loglevel)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050076
Patrick Williams44b3caf2024-04-12 16:51:14 -050077 if args.start:
78 ret=prserv.serv.start_daemon(args.file, args.host, args.port, os.path.abspath(args.log), args.read_only)
79 elif args.stop:
80 ret=prserv.serv.stop_daemon(args.host, args.port)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050081 else:
82 ret=parser.print_help()
83 return ret
84
85if __name__ == "__main__":
86 try:
87 ret = main()
88 except Exception:
89 ret = 1
90 import traceback
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050091 traceback.print_exc()
Patrick Williamsc124f4f2015-09-15 14:41:29 -050092 sys.exit(ret)
93