summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorDavid <dlesl@users.noreply.github.com>2021-05-08 13:47:27 +0200
committerRaphael Megzari <raphael@megzari.com>2021-05-11 08:59:57 +0900
commitdcc075ce21152964f8107e0ddf5140723e881e2b (patch)
treeca46afe85c8afa1e13c5cb4a63804fd6e099c20a /pkgs/development
parentaaa16732ce3d3001e238eb4074cd68b8f300f77f (diff)
downloadnixpkgs-dcc075ce21152964f8107e0ddf5140723e881e2b.tar
nixpkgs-dcc075ce21152964f8107e0ddf5140723e881e2b.tar.gz
nixpkgs-dcc075ce21152964f8107e0ddf5140723e881e2b.tar.bz2
nixpkgs-dcc075ce21152964f8107e0ddf5140723e881e2b.tar.lz
nixpkgs-dcc075ce21152964f8107e0ddf5140723e881e2b.tar.xz
nixpkgs-dcc075ce21152964f8107e0ddf5140723e881e2b.tar.zst
nixpkgs-dcc075ce21152964f8107e0ddf5140723e881e2b.zip
buildRebar3: use rebar3WithPlugins
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/beam-modules/build-rebar3.nix13
-rw-r--r--pkgs/development/tools/build-managers/rebar3/default.nix2
-rwxr-xr-xpkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap41
3 files changed, 8 insertions, 48 deletions
diff --git a/pkgs/development/beam-modules/build-rebar3.nix b/pkgs/development/beam-modules/build-rebar3.nix
index 2e2f0a50b31..651c024db09 100644
--- a/pkgs/development/beam-modules/build-rebar3.nix
+++ b/pkgs/development/beam-modules/build-rebar3.nix
@@ -1,4 +1,4 @@
-{ stdenv, writeText, erlang, rebar3, openssl, libyaml,
+{ stdenv, writeText, erlang, rebar3WithPlugins, openssl, libyaml,
   pc, lib }:
 
 { name, version
@@ -19,7 +19,10 @@ with lib;
 let
   debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "debug-info";
 
-  ownPlugins = buildPlugins ++ (if compilePorts then [pc] else []);
+  rebar3 = rebar3WithPlugins {
+    plugins = buildPlugins;
+    globalPlugins = (if compilePorts then [pc] else []);
+  };
 
   shell = drv: stdenv.mkDerivation {
           name = "interactive-shell-${drv.name}";
@@ -36,13 +39,9 @@ let
     inherit version;
 
     buildInputs = buildInputs ++ [ erlang rebar3 openssl libyaml ];
-    propagatedBuildInputs = unique (beamDeps ++ ownPlugins);
+    propagatedBuildInputs = unique beamDeps;
 
     dontStrip = true;
-    # The following are used by rebar3-nix-bootstrap
-    inherit compilePorts;
-    buildPlugins = ownPlugins;
-
     inherit src;
 
     setupHook = writeText "setupHook.sh" ''
diff --git a/pkgs/development/tools/build-managers/rebar3/default.nix b/pkgs/development/tools/build-managers/rebar3/default.nix
index b44a8c08ffa..16b630f36b9 100644
--- a/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -4,7 +4,7 @@
 let
   version = "3.15.1";
   owner = "erlang";
-  deps = import ./rebar-deps.nix { inherit fetchHex fetchFromGitHub; };
+  deps = import ./rebar-deps.nix { inherit fetchHex; };
   rebar3 = stdenv.mkDerivation rec {
     pname = "rebar3";
     inherit version erlang;
diff --git a/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap b/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap
index f1deed1df35..8bfbb8fb685 100755
--- a/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap
+++ b/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap
@@ -26,9 +26,7 @@
 
 -record(data, {version
               , debug_info = false
-              , compile_ports
               , erl_libs
-              , plugins
               , root
               , name}).
 
@@ -42,7 +40,6 @@ main(Args) ->
 -spec do_the_bootstrap(#data{}) -> ok.
 do_the_bootstrap(RequiredData) ->
     ok = bootstrap_configs(RequiredData),
-    ok = bootstrap_plugins(RequiredData),
     ok = bootstrap_libs(RequiredData).
 
 %% @doc
@@ -68,22 +65,8 @@ parse_args(Args0) ->
 bootstrap_configs(RequiredData)->
     io:format("Boostrapping app and rebar configurations~n"),
     ok = if_single_app_project_update_app_src_version(RequiredData),
-    ok = if_compile_ports_add_pc_plugin(RequiredData),
     ok = if_debug_info_add(RequiredData).
 
--spec bootstrap_plugins(#data{}) -> ok.
-bootstrap_plugins(#data{plugins = Plugins}) ->
-    io:format("Bootstrapping rebar3 plugins~n"),
-    Target = "_build/default/plugins/",
-    Paths = string:tokens(Plugins, " "),
-    CopiableFiles =
-        lists:foldl(fun(Path, Acc) ->
-                            gather_dependency(Path) ++ Acc
-                    end, [], Paths),
-    lists:foreach(fun (Path) ->
-                          ok = link_app(Path, Target)
-                  end, CopiableFiles).
-
 -spec bootstrap_libs(#data{}) -> ok.
 bootstrap_libs(#data{erl_libs = ErlLibs}) ->
     io:format("Bootstrapping dependent libraries~n"),
@@ -152,10 +135,9 @@ fixup_app_name(FileName) ->
 gather_required_data_from_the_environment(ArgData) ->
     {ok, ArgData#data{ version = guard_env("version")
                      , erl_libs = get_env("ERL_LIBS", [])
-                     , plugins = get_env("buildPlugins", [])
                      , root = code:root_dir()
                      , name = guard_env("name")
-                     , compile_ports = nix2bool(get_env("compilePorts", ""))}}.
+                     }}.
 
 -spec nix2bool(any()) -> boolean().
 nix2bool("1") ->
@@ -209,27 +191,6 @@ add_debug_info(Config) ->
                            {erl_opts, [debug_info | ExistingOpts]})
     end.
 
-
-%% @doc
-%% If the compile ports flag is set, rewrite the rebar config to
-%% include the 'pc' plugin.
--spec if_compile_ports_add_pc_plugin(#data{}) -> ok.
-if_compile_ports_add_pc_plugin(#data{compile_ports = true}) ->
-    ConfigTerms = add_pc_to_plugins(read_rebar_config()),
-    Text = lists:map(fun(Term) -> io_lib:format("~tp.~n", [Term]) end,
-                     ConfigTerms),
-    file:write_file("rebar.config", Text);
-if_compile_ports_add_pc_plugin(_) ->
-    ok.
-
--spec add_pc_to_plugins([term()]) -> [term()].
-add_pc_to_plugins(Config) ->
-    PluginList = case lists:keysearch(plugins, 1, Config) of
-                     {value, {plugins, ExistingPluginList}} -> ExistingPluginList;
-                     _ -> []
-                 end,
-    lists:keystore(plugins, 1, Config, {plugins, [pc | PluginList]}).
-
 -spec read_rebar_config() -> [term()].
 read_rebar_config() ->
     case file:consult("rebar.config") of