xref: /OK3568_Linux_fs/yocto/bitbake/bin/bitbake-prserv (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1#!/usr/bin/env python3
2#
3# Copyright BitBake Contributors
4#
5# SPDX-License-Identifier: GPL-2.0-only
6#
7
8import os
9import sys,logging
10import optparse
11import warnings
12warnings.simplefilter("default")
13
14sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),'lib'))
15
16import prserv
17import prserv.serv
18
19__version__="1.0.0"
20
21PRHOST_DEFAULT='0.0.0.0'
22PRPORT_DEFAULT=8585
23
24def main():
25    parser = optparse.OptionParser(
26        version="Bitbake PR Service Core version %s, %%prog version %s" % (prserv.__version__, __version__),
27        usage = "%prog < --start | --stop > [options]")
28
29    parser.add_option("-f", "--file", help="database filename(default: prserv.sqlite3)", action="store",
30                      dest="dbfile", type="string", default="prserv.sqlite3")
31    parser.add_option("-l", "--log", help="log filename(default: prserv.log)", action="store",
32                      dest="logfile", type="string", default="prserv.log")
33    parser.add_option("--loglevel", help="logging level, i.e. CRITICAL, ERROR, WARNING, INFO, DEBUG",
34                      action = "store", type="string", dest="loglevel", default = "INFO")
35    parser.add_option("--start", help="start daemon",
36                      action="store_true", dest="start")
37    parser.add_option("--stop", help="stop daemon",
38                      action="store_true", dest="stop")
39    parser.add_option("--host", help="ip address to bind", action="store",
40                      dest="host", type="string", default=PRHOST_DEFAULT)
41    parser.add_option("--port", help="port number(default: 8585)", action="store",
42                      dest="port", type="int", default=PRPORT_DEFAULT)
43    parser.add_option("-r", "--read-only", help="open database in read-only mode",
44                      action="store_true")
45
46    options, args = parser.parse_args(sys.argv)
47    prserv.init_logger(os.path.abspath(options.logfile),options.loglevel)
48
49    if options.start:
50        ret=prserv.serv.start_daemon(options.dbfile, options.host, options.port,os.path.abspath(options.logfile), options.read_only)
51    elif options.stop:
52        ret=prserv.serv.stop_daemon(options.host, options.port)
53    else:
54        ret=parser.print_help()
55    return ret
56
57if __name__ == "__main__":
58    try:
59        ret = main()
60    except Exception:
61        ret = 1
62        import traceback
63        traceback.print_exc()
64    sys.exit(ret)
65
66