| #!/usr/bin/env vpython3 |
| # Copyright 2013 The Flutter Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| ''' |
| Runs the pre-push githooks. |
| ''' |
| |
| import os |
| import subprocess |
| import sys |
| |
| |
| SRC_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) |
| FLUTTER_DIR = os.path.join(SRC_ROOT, 'flutter') |
| ENABLE_CLANG_TIDY = os.environ.get('PRE_PUSH_CLANG_TIDY') |
| |
| |
| def GetDartBin(): |
| dart_bin = os.path.join(SRC_ROOT, 'flutter', 'third_party', 'dart', 'tools', 'sdks', 'dart-sdk', 'bin') |
| if not os.path.exists(dart_bin): |
| dart_bin = os.path.join(SRC_ROOT, 'third_party', 'dart', 'tools', 'sdks', 'dart-sdk', 'bin') |
| return dart_bin |
| |
| |
| def Main(argv): |
| githook_args = [ |
| '--flutter', |
| FLUTTER_DIR, |
| ] |
| |
| if ENABLE_CLANG_TIDY is not None: |
| githook_args += [ |
| '--enable-clang-tidy', |
| ] |
| |
| result = subprocess.run([ |
| os.path.join(GetDartBin(), 'dart'), |
| '--disable-dart-dev', |
| os.path.join(FLUTTER_DIR, 'tools', 'githooks', 'bin', 'main.dart'), |
| ] + githook_args + [ |
| 'pre-push', |
| ] + argv[1:], cwd=SRC_ROOT) |
| return result.returncode |
| |
| |
| if __name__ == '__main__': |
| sys.exit(Main(sys.argv)) |