File tree 1 file changed +28
-6
lines changed
jobs/webcompat-kb/webcompat_kb
1 file changed +28
-6
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,12 @@ def get_parser() -> argparse.ArgumentParser:
33
33
help = "Don't write updates to BigQuery" ,
34
34
)
35
35
36
+ parser .add_argument (
37
+ "--debug" ,
38
+ action = "store_true" ,
39
+ help = "Drop into debugger if there's an exception" ,
40
+ )
41
+
36
42
for job_cls in ALL_JOBS .values ():
37
43
job_cls .add_arguments (parser )
38
44
@@ -74,12 +80,7 @@ def set_default_args(parser: argparse.ArgumentParser, args: argparse.Namespace)
74
80
sys .exit (1 )
75
81
76
82
77
- def main () -> None :
78
- logging .basicConfig ()
79
-
80
- parser = get_parser ()
81
- args = parser .parse_args ()
82
- logging .getLogger ().setLevel (logging .getLevelNamesMapping ()[args .log_level .upper ()])
83
+ def run (parser : argparse .ArgumentParser , args : argparse .Namespace ) -> None :
83
84
set_default_args (parser , args )
84
85
85
86
jobs = {job_name : ALL_JOBS [job_name ]() for job_name in args .jobs }
@@ -94,5 +95,26 @@ def main() -> None:
94
95
job .main (client , args )
95
96
96
97
98
+ def main () -> None :
99
+ logging .basicConfig ()
100
+
101
+ parser = get_parser ()
102
+ args = parser .parse_args ()
103
+ logging .getLogger ().setLevel (logging .getLevelNamesMapping ()[args .log_level .upper ()])
104
+
105
+ try :
106
+ run (parser , args )
107
+ except Exception :
108
+ if args .debug :
109
+ import traceback
110
+
111
+ traceback .print_exc ()
112
+ import pdb
113
+
114
+ pdb .post_mortem ()
115
+ else :
116
+ raise
117
+
118
+
97
119
if __name__ == "__main__" :
98
120
main ()
You can’t perform that action at this time.
0 commit comments