__init__.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # coding: utf-8
  2. #
  3. """
  4. uiautomator2 cli
  5. Usage:
  6. u2cli install <ip> <url> [--server=<server>]
  7. u2cli runyaml [--debug] [--step] <filename>
  8. Options:
  9. -h --help show this help message
  10. -v --version show version
  11. -s --server=<server> atx-server url, eg: http://10.0.0.1:8000
  12. --serial=<serial> device serial number
  13. --debug set loglevel to DEBUG
  14. """
  15. # u2cli install <url> [--serial=<serial>]
  16. import time
  17. import requests
  18. import re
  19. import six
  20. import sys
  21. import humanize
  22. import hashlib
  23. from docopt import docopt
  24. # import uiautomator2
  25. from ssat_sdk.uiautomator2.cli import runyaml
  26. from ssat_sdk.uiautomator2.cli import install
  27. urllib = six.moves.urllib
  28. def _reformat_addr(addr):
  29. if not re.match(r"^https?://", addr):
  30. addr = "http://" + addr
  31. u = urllib.parse.urlparse(addr)
  32. return u.scheme + "://" + u.netloc
  33. class HTTPError(Exception):
  34. pass
  35. def raise_for_status(r):
  36. if r.status_code != 200:
  37. raise HTTPError(r.text)
  38. __commands = {}
  39. def register_command(func, name=None, args=()):
  40. name = name or func.__name__
  41. __commands[name] = (func, args)
  42. def __cmd_install(ip, server, apk_url):
  43. install.install_apk(ip, apk_url)
  44. def __cmd_runyaml(debug, onlystep, filename):
  45. try:
  46. import yaml
  47. except ImportError:
  48. sys.exit("you need to install pyaml")
  49. runyaml.main(filename, debug, onlystep)
  50. def main():
  51. args = docopt(__doc__, version='u2cli 1.1')
  52. print(args)
  53. register_command(__cmd_install, 'install', ('<ip>', '--server', '<url>'))
  54. register_command(__cmd_runyaml, "runyaml",
  55. ('--debug', '--step', '<filename>'))
  56. for cmdname, cmdopts in __commands.items():
  57. if args[cmdname]:
  58. func, argnames = cmdopts
  59. cmdargs = [args[argname] for argname in argnames]
  60. func(*cmdargs)
  61. # return
  62. # print("InstallURL", install_url)
  63. # install_url = get_install_url(args['<ip>'], args['--server'])
  64. # # https://gohttp.nie.netease.com/tools/apks/qrcodescan-2.6.0-green.apk'
  65. # install_apk(install_url, apk_url)