| #!/usr/bin/env python3 |
| # |
| # Copyright 2023 Google LLC |
| # |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import hashlib |
| import os |
| import shutil |
| import subprocess |
| import sys |
| |
| target = sys.argv[1] |
| output = sys.argv[2] |
| |
| # Forward the remaining args to the bazel invocation |
| subprocess.run(["bazelisk", "build", target ] + sys.argv[3:], check=True) |
| |
| expected_output = os.path.join(os.getcwd(), os.path.basename(output)) |
| if not os.path.exists(expected_output): |
| shutil.copyfile(output, expected_output) |
| os.chmod(expected_output, 0o755) |
| else: |
| created_hash = hashlib.sha256(open(output, 'rb').read()).hexdigest() |
| existing_hash = hashlib.sha256(open(expected_output, 'rb').read()).hexdigest() |
| if created_hash != existing_hash: |
| os.remove(expected_output) |
| shutil.copyfile(output, expected_output) |
| os.chmod(expected_output, 0o755) |