From 3efafceb600e94cf0d2a69e4d246c960cb43b250 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Sat, 9 Sep 2017 17:54:18 +0200
Subject: [PATCH] udiffer.py: Improve overall structure

---
 expat/tests/udiffer.py | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/expat/tests/udiffer.py b/expat/tests/udiffer.py
index 4f7f7599..6fb91be7 100755
--- a/expat/tests/udiffer.py
+++ b/expat/tests/udiffer.py
@@ -28,8 +28,9 @@
 # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
 # USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-import sys
+import argparse
 import difflib
+import sys
 
 
 def _read_lines(filename):
@@ -41,14 +42,21 @@ def _read_lines(filename):
             return f.readlines()
 
 
-if len(sys.argv) != 3:
-    sys.exit(2)
+def main():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('first', metavar='FILE')
+    parser.add_argument('second', metavar='FILE')
+    config = parser.parse_args()
+
+    first = _read_lines(config.first)
+    second = _read_lines(config.second)
+
+    diffs = list(difflib.unified_diff(first, second, fromfile=config.first,
+                                      tofile=config.second))
+    if diffs:
+        sys.stdout.writelines(diffs)
+        sys.exit(1)
 
-first = _read_lines(sys.argv[1])
-second = _read_lines(sys.argv[2])
 
-diffs = list(difflib.unified_diff(first, second,
-                                  fromfile=sys.argv[1], tofile=sys.argv[2]))
-if diffs:
-    sys.stdout.writelines(diffs)
-    sys.exit(1)
+if __name__ == '__main__':
+    main()
-- 
2.40.0