bug 1399819, separate command handler from argument parsing, r=stas
authorAxel Hecht <axel@pike.org>
Thu, 14 Sep 2017 14:25:51 +0200
changeset 325 aaae8ab7e1a5fd2976262acc855c17045e39c42d
parent 324 2fdaaaf034697910a50011d63aed9cb139b287e9
child 326 336be2d55e99146db38d91e307483fe8cdca3ce0
push id104
push useraxel@mozilla.com
push dateFri, 15 Sep 2017 16:11:05 +0000
reviewersstas
bugs1399819
bug 1399819, separate command handler from argument parsing, r=stas MozReview-Commit-ID: JbW7iDyJmc9
compare_locales/commands.py
--- a/compare_locales/commands.py
+++ b/compare_locales/commands.py
@@ -80,31 +80,17 @@ data in a json useful for Exhibit
     def handle_(self):
         """The instance part of the classmethod call."""
         self.parser = self.get_parser()
         args = self.parser.parse_args()
         # log as verbose or quiet as we want, warn by default
         logging.basicConfig()
         logging.getLogger().setLevel(logging.WARNING -
                                      (args.v - args.q) * 10)
-        observers = self.handle(args)
-        rv = 0
-        for observer in observers:
-            print observer.serialize(type=args.data).encode('utf-8', 'replace')
-            # summary is a dict of lang-summary dicts
-            # find out if any of our results has errors, return 1 if so
-            if rv > 0:
-                continue  # we already have errors
-            for loc, summary in observer.summary.items():
-                if summary.get('errors', 0) > 0:
-                    rv = 1
-                    # no need to check further summaries, but
-                    # continue to run through observers
-                    break
-        return rv
+        return self.handle(args)
 
     def handle(self, args):
         # using nargs multiple times in argparser totally screws things
         # up, repair that.
         # First files are configs, then the base dir, everything else is
         # locales
         all_args = args.config + [args.l10n_base_dir] + args.locales
         del args.config[:]
@@ -150,9 +136,23 @@ data in a json useful for Exhibit
                 configs,
                 stat_observer=unified_observer,
                 merge_stage=args.merge, clobber_merge=args.clobber)
         except (OSError, IOError), exc:
             print "FAIL: " + str(exc)
             self.parser.exit(2)
         if args.unified:
             return [unified_observer]
-        return observers
+
+        rv = 0
+        for observer in observers:
+            print observer.serialize(type=args.data).encode('utf-8', 'replace')
+            # summary is a dict of lang-summary dicts
+            # find out if any of our results has errors, return 1 if so
+            if rv > 0:
+                continue  # we already have errors
+            for loc, summary in observer.summary.items():
+                if summary.get('errors', 0) > 0:
+                    rv = 1
+                    # no need to check further summaries, but
+                    # continue to run through observers
+                    break
+        return rv