File 2892-diffable-Refactor-command-line-flags-handling.patch of Package erlang

From a5ec1eeda69312b11505cb31f42345560ae1d8e5 Mon Sep 17 00:00:00 2001
From: Frej Drejhammar <frej@sics.se>
Date: Mon, 20 Jul 2020 10:25:03 +0200
Subject: [PATCH 2/3] diffable: Refactor command line flags handling

Refactor command line parser to easily support flags with arguments,
NFC. This change is preparing the parser for a future patch which will
make it possible to pass arbitrary compiler options to compile:file/2
and compile:forms/2.
---
 scripts/diffable | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/scripts/diffable b/scripts/diffable
index 4b4b697a94..435c69006b 100755
--- a/scripts/diffable
+++ b/scripts/diffable
@@ -71,26 +71,22 @@ usage() ->
     io:put_chars(S),
     halt(1).
 
-opts(["--"++Opt|Args], Opts0) ->
-    Opts = opt(Opt, Opts0),
-    opts(Args, Opts);
+opts(["--asm"|Args], Opts) ->
+    opts(Args, Opts#{format:=asm});
+opts(["--dis"|Args], Opts) ->
+    opts(Args, Opts#{format:=dis});
+opts(["--legacy-asm"|Args], Opts) ->
+    opts(Args, Opts#{format:=asm,legacy:=true});
+opts(["--no-compile"|Args], Opts) ->
+    opts(Args, Opts#{format:=dis,no_compile:=true});
+opts(["--deterministic"|Args], Opts) ->
+    opts(Args, Opts#{deterministic:=[deterministic]});
+opts(["--"++Opt|_], _Opts) ->
+    io:format("Unknown option: --~ts\n\n", [Opt]),
+    usage();
 opts(Args, Opts) ->
     {Args,Opts}.
 
-opt("asm", Opts) ->
-    Opts#{format:=asm};
-opt("dis", Opts) ->
-    Opts#{format:=dis};
-opt("legacy-asm", Opts) ->
-    Opts#{format:=asm,legacy:=true};
-opt("no-compile", Opts) ->
-    Opts#{format:=dis,no_compile:=true};
-opt("deterministic", Opts) ->
-    Opts#{deterministic:=[deterministic]};
-opt(Opt, _Opts) ->
-    io:format("Unknown option: --~ts\n\n", [Opt]),
-    usage().
-
 do_compile(OutDir, Opts0) ->
     Opts1 = Opts0#{outdir=>OutDir},
     _ = filelib:ensure_dir(filename:join(OutDir, "dummy")),
-- 
2.26.2

openSUSE Build Service is sponsored by