#!/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'), 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))