bitbake-hashserv 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #! /usr/bin/env python3
  2. #
  3. # Copyright (C) 2018 Garmin Ltd.
  4. #
  5. # SPDX-License-Identifier: GPL-2.0-only
  6. #
  7. import os
  8. import sys
  9. import logging
  10. import argparse
  11. import sqlite3
  12. sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),'lib'))
  13. import hashserv
  14. VERSION = "1.0.0"
  15. DEFAULT_HOST = ''
  16. DEFAULT_PORT = 8686
  17. def main():
  18. parser = argparse.ArgumentParser(description='HTTP Equivalence Reference Server. Version=%s' % VERSION)
  19. parser.add_argument('--address', default=DEFAULT_HOST, help='Bind address (default "%(default)s")')
  20. parser.add_argument('--port', type=int, default=DEFAULT_PORT, help='Bind port (default %(default)d)')
  21. parser.add_argument('--prefix', default='', help='HTTP path prefix (default "%(default)s")')
  22. parser.add_argument('--database', default='./hashserv.db', help='Database file (default "%(default)s")')
  23. parser.add_argument('--log', default='WARNING', help='Set logging level')
  24. args = parser.parse_args()
  25. logger = logging.getLogger('hashserv')
  26. level = getattr(logging, args.log.upper(), None)
  27. if not isinstance(level, int):
  28. raise ValueError('Invalid log level: %s' % args.log)
  29. logger.setLevel(level)
  30. console = logging.StreamHandler()
  31. console.setLevel(level)
  32. logger.addHandler(console)
  33. db = sqlite3.connect(args.database)
  34. server = hashserv.create_server((args.address, args.port), db, args.prefix)
  35. server.serve_forever()
  36. return 0
  37. if __name__ == '__main__':
  38. try:
  39. ret = main()
  40. except Exception:
  41. ret = 1
  42. import traceback
  43. traceback.print_exc()
  44. sys.exit(ret)