bitbake-hashserv 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #! /usr/bin/env python3
  2. #
  3. # Copyright (C) 2018 Garmin Ltd.
  4. #
  5. # This program is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License version 2 as
  7. # published by the Free Software Foundation.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License along
  15. # with this program; if not, write to the Free Software Foundation, Inc.,
  16. # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  17. import os
  18. import sys
  19. import logging
  20. import argparse
  21. import sqlite3
  22. sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),'lib'))
  23. import hashserv
  24. VERSION = "1.0.0"
  25. DEFAULT_HOST = ''
  26. DEFAULT_PORT = 8686
  27. def main():
  28. parser = argparse.ArgumentParser(description='HTTP Equivalence Reference Server. Version=%s' % VERSION)
  29. parser.add_argument('--address', default=DEFAULT_HOST, help='Bind address (default "%(default)s")')
  30. parser.add_argument('--port', type=int, default=DEFAULT_PORT, help='Bind port (default %(default)d)')
  31. parser.add_argument('--prefix', default='', help='HTTP path prefix (default "%(default)s")')
  32. parser.add_argument('--database', default='./hashserv.db', help='Database file (default "%(default)s")')
  33. parser.add_argument('--log', default='WARNING', help='Set logging level')
  34. args = parser.parse_args()
  35. logger = logging.getLogger('hashserv')
  36. level = getattr(logging, args.log.upper(), None)
  37. if not isinstance(level, int):
  38. raise ValueError('Invalid log level: %s' % args.log)
  39. logger.setLevel(level)
  40. console = logging.StreamHandler()
  41. console.setLevel(level)
  42. logger.addHandler(console)
  43. db = sqlite3.connect(args.database)
  44. server = hashserv.create_server((args.address, args.port), db, args.prefix)
  45. server.serve_forever()
  46. return 0
  47. if __name__ == '__main__':
  48. try:
  49. ret = main()
  50. except Exception:
  51. ret = 1
  52. import traceback
  53. traceback.print_exc()
  54. sys.exit(ret)