[tor-commits] [ooni-probe/master] Add config file parsing support to oonireport
art at torproject.org
art at torproject.org
Wed Feb 4 13:27:16 UTC 2015
commit ec7a5291e31cb7d3bd0a1457fdef62085436b61b
Author: Arturo Filastò <art at fuffa.org>
Date: Wed Jan 21 14:10:56 2015 +0100
Add config file parsing support to oonireport
Properly pass error codes onward
---
bin/oonireport | 19 +++++++++++++++++--
ooni/report/cli.py | 6 +++++-
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/bin/oonireport b/bin/oonireport
index 3a06b3b..84fc80d 100755
--- a/bin/oonireport
+++ b/bin/oonireport
@@ -1,6 +1,7 @@
#!/usr/bin/env python
import os
import sys
+import exceptions
sys.path[:] = map(os.path.abspath, sys.path)
sys.path.insert(0, os.path.abspath(os.getcwd()))
@@ -10,12 +11,25 @@ from twisted.internet import defer, reactor
from ooni.utils import log
from ooni.report import cli
+exitCode = 128
+
def failed(failure):
- log.err("Failed to run ooni-report")
- log.exception(failure)
+ global exitCode
+
+ r = failure.trap(exceptions.SystemExit)
+ if r != exceptions.SystemExit:
+ log.err("Failed to run oonideckgen")
+ log.exception(failure)
+ exitCode = 127
+ else:
+ exitCode = failure.value.code
reactor.stop()
+
def done(result):
+ global exitCode
+ exitCode = 0
+
reactor.stop()
def start():
@@ -25,3 +39,4 @@ def start():
reactor.callWhenRunning(start)
reactor.run()
+sys.exit(exitCode)
diff --git a/ooni/report/cli.py b/ooni/report/cli.py
index 2523c4f..e52b022 100644
--- a/ooni/report/cli.py
+++ b/ooni/report/cli.py
@@ -16,6 +16,8 @@ class Options(usage.Options):
""" % (os.path.basename(sys.argv[0]),)
optParameters = [
+ ["configfile", "f", None,
+ "Specify the configuration file to use."],
["collector", "c", None,
"Specify the collector to upload the result to."],
["bouncer", "b", None,
@@ -52,7 +54,6 @@ def tor_check():
def run():
- config.read_config_file()
options = Options()
try:
options.parseOptions()
@@ -60,6 +61,9 @@ def run():
print("Error: %s" % exc)
print(options)
sys.exit(2)
+ config.global_options = dict(options)
+ config.set_paths()
+ config.read_config_file()
if options['command'] == "upload" and options['report_file']:
tor_check()
return tool.upload(options['report_file'],
More information about the tor-commits
mailing list