| #!/usr/bin/env python3 |
| # Copyright 2023 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """This script is a wrapper around the ninja.py script that also |
| handles the client lifecycle safely. It will automatically start |
| reproxy before running ninja and stop reproxy when ninja stops |
| for any reason eg. build completes, keyboard interupt etc.""" |
| |
| import sys |
| |
| import ninja |
| import reclient_helper |
| |
| |
| def main(argv): |
| with reclient_helper.build_context(argv, "ninja_reclient") as ret_code: |
| if ret_code: |
| return ret_code |
| try: |
| return ninja.main(argv) |
| except KeyboardInterrupt: |
| print("Shutting down reproxy...", file=sys.stderr) |
| return 1 |
| |
| |
| if __name__ == "__main__": |
| sys.exit(main(sys.argv)) |