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