()
| 14 | |
| 15 | |
| 16 | def main(): |
| 17 | rv = 202 |
| 18 | try: |
| 19 | targets = sys.argv[1:] |
| 20 | state.init(targets) |
| 21 | if env.is_toplevel and not targets: |
| 22 | targets = ['all'] |
| 23 | if env.is_toplevel and env.v.LOG: |
| 24 | builder.close_stdin() |
| 25 | builder.start_stdin_log_reader( |
| 26 | status=True, details=True, |
| 27 | pretty=True, color=True, debug_locks=False, debug_pids=False) |
| 28 | else: |
| 29 | logs.setup( |
| 30 | tty=sys.stderr, parent_logs=env.v.LOG, |
| 31 | pretty=env.v.PRETTY, color=env.v.COLOR) |
| 32 | if env.v.TARGET and not env.v.UNLOCKED: |
| 33 | me = os.path.join(env.v.STARTDIR, |
| 34 | os.path.join(env.v.PWD, env.v.TARGET)) |
| 35 | f = state.File(name=me) |
| 36 | debug2('TARGET: %r %r %r\n' |
| 37 | % (env.v.STARTDIR, env.v.PWD, env.v.TARGET)) |
| 38 | else: |
| 39 | f = me = None |
| 40 | debug2('redo-ifchange: not adding depends.\n') |
| 41 | jobserver.setup(0) |
| 42 | try: |
| 43 | if f: |
| 44 | for t in targets: |
| 45 | f.add_dep('m', t) |
| 46 | f.save() |
| 47 | state.commit() |
| 48 | rv = builder.run(targets, should_build) |
| 49 | finally: |
| 50 | try: |
| 51 | state.rollback() |
| 52 | finally: |
| 53 | try: |
| 54 | jobserver.force_return_tokens() |
| 55 | except Exception, e: # pylint: disable=broad-except |
| 56 | traceback.print_exc(100, sys.stderr) |
| 57 | err('unexpected error: %r\n' % e) |
| 58 | rv = 1 |
| 59 | except (KeyboardInterrupt, helpers.ImmediateReturn): |
| 60 | if env.is_toplevel: |
| 61 | builder.await_log_reader() |
| 62 | sys.exit(200) |
| 63 | state.commit() |
| 64 | if env.is_toplevel: |
| 65 | builder.await_log_reader() |
| 66 | sys.exit(rv) |
| 67 | |
| 68 | |
| 69 | if __name__ == '__main__': |
no test coverage detected