#!/usr/bin/env python
import sys
from twisted.internet import defer, reactor

from ooni.utils import log
from ooni.resources import cli

exitCode = 128
def failed(failure):
    global exitCode

    r = failure.trap(exceptions.SystemExit,
                     Exception)
    if r != exceptions.SystemExit:
        log.err("Failed to run ooniresources")
        log.exception(failure)
        exitCode = 127
    else:
        exitCode = failure.value.code
    reactor.stop()

def done(result):
    global exitCode

    exitCode = 0
    reactor.stop()

def start():
    d = defer.maybeDeferred(cli.run)
    d.addCallback(done)
    d.addErrback(done)

reactor.callWhenRunning(start)
reactor.run()
sys.exit(exitCode)
