Use optional arguments for setting repositories
diff --git a/scripts/abi_check.py b/scripts/abi_check.py
index 6c8be0d..12ee44e 100755
--- a/scripts/abi_check.py
+++ b/scripts/abi_check.py
@@ -372,26 +372,34 @@
             help="keep all reports, even if there are no compatibility issues",
         )
         parser.add_argument(
-            "-o", "--old-rev", type=str,
-            help=("revision for old version."
-                  "Can include repository before revision"),
-            required=True, nargs="+"
+            "-o", "--old-rev", type=str, help="revision for old version.",
+            required=True,
         )
         parser.add_argument(
-            "-oc", "--old-crypto-rev", type=str, nargs="+",
-            help=("revision for old crypto version."
-                  "Can include repository before revision"),
+            "-or", "--old-repo", type=str, help="repository for old version."
         )
         parser.add_argument(
-            "-n", "--new-rev", type=str,
-            help=("revision for new version"
-                  "Can include repository before revision"),
-            required=True, nargs="+"
+            "-oc", "--old-crypto-rev", type=str,
+            help="revision for old crypto submodule."
         )
         parser.add_argument(
-            "-nc", "--new-crypto-rev", type=str, nargs="+",
-            help=("revision for new crypto version"
-                  "Can include repository before revision"),
+            "-ocr", "--old-crypto-repo", type=str,
+            help="repository for old crypto submodule."
+        )
+        parser.add_argument(
+            "-n", "--new-rev", type=str, help="revision for new version",
+            required=True,
+        )
+        parser.add_argument(
+            "-nr", "--new-repo", type=str, help="repository for new version."
+        )
+        parser.add_argument(
+            "-nc", "--new-crypto-rev", type=str,
+            help="revision for new crypto version"
+        )
+        parser.add_argument(
+            "-ncr", "--new-crypto-repo", type=str,
+            help="repository for new crypto submodule."
         )
         parser.add_argument(
             "-s", "--skip-file", type=str,
@@ -402,46 +410,12 @@
             help="output only the list of issues to stdout, instead of a full report",
         )
         abi_args = parser.parse_args()
-        if len(abi_args.old_rev) == 1:
-            old_repo = None
-            old_rev = abi_args.old_rev[0]
-        elif len(abi_args.old_rev) == 2:
-            old_repo = abi_args.old_rev[0]
-            old_rev = abi_args.old_rev[1]
-        else:
-            raise Exception("Too many arguments passed for old version")
-        if len(abi_args.new_rev) == 1:
-            new_repo = None
-            new_rev = abi_args.new_rev[0]
-        elif len(abi_args.new_rev) == 2:
-            new_repo = abi_args.new_rev[0]
-            new_rev = abi_args.new_rev[1]
-        else:
-            raise Exception("Too many arguments passed for new version")
-        old_crypto_repo = None
-        old_crypto_rev = None
-        if abi_args.old_crypto_rev:
-            if len(abi_args.old_crypto_rev) == 1:
-                old_crypto_rev = abi_args.old_crypto_rev[0]
-            elif len(abi_args.old_crypto_rev) == 2:
-                old_crypto_repo = abi_args.old_crypto_rev[0]
-                old_crypto_rev = abi_args.old_crypto_rev[1]
-            else:
-                raise Exception("Too many arguments passed for old crypto version")
-        new_crypto_repo = None
-        new_crypto_rev = None
-        if abi_args.new_crypto_rev:
-            if len(abi_args.new_crypto_rev) == 1:
-                new_crypto_rev = abi_args.new_crypto_rev[0]
-            elif len(abi_args.new_crypto_rev) == 2:
-                new_crypto_repo = abi_args.new_crypto_rev[0]
-                new_crypto_rev = abi_args.new_crypto_rev[1]
-            else:
-                raise Exception("Too many arguments passed for new crypto version")
         abi_check = AbiChecker(
-            abi_args.report_dir, old_repo, old_rev, old_crypto_rev,
-            old_crypto_repo, new_repo, new_rev, new_crypto_rev, new_crypto_repo,
-            abi_args.keep_all_reports, abi_args.brief, abi_args.skip_file
+            abi_args.report_dir, abi_args.old_repo, abi_args.old_rev,
+            abi_args.old_crypto_rev, abi_args.old_crypto_repo,
+            abi_args.new_repo, abi_args.new_rev, abi_args.new_crypto_rev,
+            abi_args.new_crypto_repo, abi_args.keep_all_reports,
+            abi_args.brief, abi_args.skip_file
         )
         return_code = abi_check.check_for_abi_changes()
         sys.exit(return_code)