mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-11-01 10:49:03 +08:00
135 lines
3.6 KiB
Python
Executable File
135 lines
3.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
from __future__ import print_function
|
|
|
|
import argparse
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
is_python3 = bool(sys.version_info.major == 3)
|
|
has_python34 = False
|
|
verbose = False
|
|
repo_dir = os.path.abspath(os.path.dirname(__file__))
|
|
path_to_cov = os.path.join(repo_dir, 'tools', 'cov.py')
|
|
|
|
|
|
def call(*args, **kwargs):
|
|
if verbose:
|
|
print(' '.join(args[0]))
|
|
ret = subprocess.call(*args, **kwargs)
|
|
if ret != 0:
|
|
sys.exit(ret)
|
|
|
|
|
|
def main(argv):
|
|
parser = argparse.ArgumentParser(prog='run')
|
|
parser.add_argument('--no3', action='store_true',
|
|
help='Do not run the tests under Python 3.')
|
|
parser.add_argument('-v', '--verbose', action='store_true')
|
|
subps = parser.add_subparsers()
|
|
|
|
subp = subps.add_parser('build', help='build the package')
|
|
subp.set_defaults(func=run_build)
|
|
|
|
subp = subps.add_parser('clean', help='Remove any local files.')
|
|
subp.set_defaults(func=run_clean)
|
|
|
|
subp = subps.add_parser('coverage',
|
|
help='Run the tests and report code coverage.')
|
|
subp.set_defaults(func=run_coverage)
|
|
|
|
subp = subps.add_parser('develop',
|
|
help='Install a symlinked package locally.')
|
|
subp.set_defaults(func=run_develop)
|
|
subp.add_argument('--system', action='store_true',
|
|
help=('Install to the system site-package dir '
|
|
'rather than the user\'s (requires root).'))
|
|
|
|
subp = subps.add_parser('format',
|
|
help='Reformat the source code.')
|
|
subp.set_defaults(func=run_format)
|
|
|
|
subp = subps.add_parser('help',
|
|
help='Get help on a subcommand.')
|
|
subp.add_argument(nargs='?', action='store', dest='subcommand',
|
|
help='The command to get help for.')
|
|
subp.set_defaults(func=run_help)
|
|
|
|
subp = subps.add_parser('install',
|
|
help='build the package and install locally.')
|
|
subp.set_defaults(func=run_install)
|
|
subp.add_argument('--system', action='store_true',
|
|
help=('Install to the system site-package dir '
|
|
'rather than the user\'s (requires root).'))
|
|
|
|
subp = subps.add_parser('lint',
|
|
help='run lint over the source')
|
|
subp.set_defaults(func=run_lint)
|
|
|
|
subp = subps.add_parser('tests',
|
|
help='run the tests')
|
|
subp.set_defaults(func=run_tests)
|
|
|
|
args = parser.parse_args(argv)
|
|
|
|
global verbose
|
|
if args.verbose:
|
|
verbose = True
|
|
global has_python34
|
|
if not args.no3:
|
|
try:
|
|
ver = subprocess.check_output(['python3', '--version'])
|
|
has_python34 = ver.split()[1] >= '3.4'
|
|
except:
|
|
pass
|
|
args.func(args)
|
|
|
|
|
|
def run_build(args):
|
|
call([sys.executable, 'setup.py', 'build', '--quiet'])
|
|
|
|
|
|
def run_clean(args):
|
|
call(['git', 'clean', '-fxd'])
|
|
|
|
|
|
def run_coverage(args):
|
|
call(['typ', '-c', 'json5'])
|
|
|
|
|
|
def run_develop(args):
|
|
call([sys.executable, 'setup.py', 'develop'])
|
|
|
|
|
|
def run_format(args):
|
|
call('autopep8 --in-place *.py */*.py */*/*.py', shell=True)
|
|
|
|
|
|
def run_help(args):
|
|
if args.subcommand:
|
|
main([args.subcommand, '--help'])
|
|
main(['--help'])
|
|
|
|
|
|
def run_install(args):
|
|
if args.system:
|
|
argv = []
|
|
else:
|
|
argv = ['--user']
|
|
call([sys.executable, 'setup.py', 'install'] + argv)
|
|
|
|
|
|
def run_lint(args):
|
|
call('pylint --rcfile=pylintrc */*.py */*/*.py', shell=True)
|
|
call('pep8 *.py */*.py */*/*.py', shell=True)
|
|
|
|
|
|
def run_tests(args):
|
|
call(['typ', 'json5'])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main(sys.argv[1:]))
|