File 2201-scripts-diffable-Refactor-option-parsing.patch of Package erlang

From 9ebb7a3b087423774ee45becaa4305a7af37adf6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Tue, 23 Oct 2018 08:41:00 +0200
Subject: [PATCH 1/4] scripts/diffable: Refactor option parsing

---
 scripts/diffable | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/scripts/diffable b/scripts/diffable
index 6a9792e857..66b50d0499 100755
--- a/scripts/diffable
+++ b/scripts/diffable
@@ -8,8 +8,7 @@ main(Args0) ->
 	[OutDir] ->
 	    do_compile(OutDir, Opts);
 	_ ->
-            usage(),
-	    halt(1)
+            usage()
     end.
 
 usage() ->
@@ -42,17 +41,25 @@ usage() ->
         "# Hack ops.tab and/or one of the *instr.tab files.\n"
         "$ scripts/diffable --dis --no-compile new\n"
         "$ diff -u old new\n",
-    io:put_chars(S).
-
-opts(["--asm"|Args], Opts) ->
-    opts(Args, Opts#{format:=asm});
-opts(["--dis"|Args], Opts) ->
-    opts(Args, Opts#{format:=dis});
-opts(["--no-compile"|Args], Opts) ->
-    opts(Args, Opts#{format:=dis,no_compile:=true});
+    io:put_chars(S),
+    halt(1).
+
+opts(["--"++Opt|Args], Opts0) ->
+    Opts = opt(Opt, Opts0),
+    opts(Args, Opts);
 opts(Args, Opts) ->
     {Args,Opts}.
 
+opt("asm", Opts) ->
+    Opts#{format:=asm};
+opt("dis", Opts) ->
+    Opts#{format:=dis};
+opt("no-compile", Opts) ->
+    Opts#{format:=dis,no_compile:=true};
+opt(Opt, Opts) ->
+    io:format("Uknown option: --~ts\n\n", [Opt]),
+    usage().
+
 do_compile(OutDir, Opts0) ->
     Opts1 = Opts0#{outdir=>OutDir},
     _ = filelib:ensure_dir(filename:join(OutDir, "dummy")),
-- 
2.16.4

openSUSE Build Service is sponsored by