|
|
|
@@ -140,7 +140,7 @@ beamPackages.jiffy jiffy-0.14.5
|
|
|
|
|
beamPackages.lager lager-3.0.2
|
|
|
|
|
beamPackages.meck meck-0.8.3
|
|
|
|
|
beamPackages.rebar3-pc pc-1.1.0
|
|
|
|
|
</programlisting>
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
To install any of those packages into your profile, refer to them by their
|
|
|
|
@@ -149,7 +149,7 @@ beamPackages.rebar3-pc pc-1.1.0
|
|
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
$ nix-env -f "<nixpkgs>" -iA beamPackages.ibrowse
|
|
|
|
|
</programlisting>
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
The attribute path of any BEAM package corresponds to the name of that
|
|
|
|
@@ -178,22 +178,22 @@ $ nix-env -f "<nixpkgs>" -iA beamPackages.ibrowse
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
{ stdenv, fetchFromGitHub, buildRebar3, ibrowse, jsx, erlware_commons }:
|
|
|
|
|
{ stdenv, fetchFromGitHub, buildRebar3, ibrowse, jsx, erlware_commons }:
|
|
|
|
|
|
|
|
|
|
buildRebar3 rec {
|
|
|
|
|
name = "hex2nix";
|
|
|
|
|
version = "0.0.1";
|
|
|
|
|
buildRebar3 rec {
|
|
|
|
|
name = "hex2nix";
|
|
|
|
|
version = "0.0.1";
|
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
|
owner = "ericbmerritt";
|
|
|
|
|
repo = "hex2nix";
|
|
|
|
|
rev = "${version}";
|
|
|
|
|
sha256 = "1w7xjidz1l5yjmhlplfx7kphmnpvqm67w99hd2m7kdixwdxq0zqg";
|
|
|
|
|
};
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
|
owner = "ericbmerritt";
|
|
|
|
|
repo = "hex2nix";
|
|
|
|
|
rev = "${version}";
|
|
|
|
|
sha256 = "1w7xjidz1l5yjmhlplfx7kphmnpvqm67w99hd2m7kdixwdxq0zqg";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
beamDeps = [ ibrowse jsx erlware_commons ];
|
|
|
|
|
}
|
|
|
|
|
</programlisting>
|
|
|
|
|
beamDeps = [ ibrowse jsx erlware_commons ];
|
|
|
|
|
}
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Such derivations are callable with
|
|
|
|
@@ -228,29 +228,29 @@ $ nix-env -f "<nixpkgs>" -iA beamPackages.ibrowse
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
{ buildErlangMk, fetchHex, cowlib, ranch }:
|
|
|
|
|
{ buildErlangMk, fetchHex, cowlib, ranch }:
|
|
|
|
|
|
|
|
|
|
buildErlangMk {
|
|
|
|
|
name = "cowboy";
|
|
|
|
|
version = "1.0.4";
|
|
|
|
|
buildErlangMk {
|
|
|
|
|
name = "cowboy";
|
|
|
|
|
version = "1.0.4";
|
|
|
|
|
|
|
|
|
|
src = fetchHex {
|
|
|
|
|
pkg = "cowboy";
|
|
|
|
|
version = "1.0.4";
|
|
|
|
|
sha256 = "6a0edee96885fae3a8dd0ac1f333538a42e807db638a9453064ccfdaa6b9fdac";
|
|
|
|
|
};
|
|
|
|
|
src = fetchHex {
|
|
|
|
|
pkg = "cowboy";
|
|
|
|
|
version = "1.0.4";
|
|
|
|
|
sha256 = "6a0edee96885fae3a8dd0ac1f333538a42e807db638a9453064ccfdaa6b9fdac";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
beamDeps = [ cowlib ranch ];
|
|
|
|
|
beamDeps = [ cowlib ranch ];
|
|
|
|
|
|
|
|
|
|
meta = {
|
|
|
|
|
description = ''
|
|
|
|
|
Small, fast, modular HTTP server written in Erlang
|
|
|
|
|
'';
|
|
|
|
|
license = stdenv.lib.licenses.isc;
|
|
|
|
|
homepage = https://github.com/ninenines/cowboy;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
</programlisting>
|
|
|
|
|
meta = {
|
|
|
|
|
description = ''
|
|
|
|
|
Small, fast, modular HTTP server written in Erlang
|
|
|
|
|
'';
|
|
|
|
|
license = stdenv.lib.licenses.isc;
|
|
|
|
|
homepage = https://github.com/ninenines/cowboy;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
</programlisting>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section xml:id="mix-packages">
|
|
|
|
@@ -262,56 +262,56 @@ $ nix-env -f "<nixpkgs>" -iA beamPackages.ibrowse
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
{ buildMix, fetchHex, plug, absinthe }:
|
|
|
|
|
{ buildMix, fetchHex, plug, absinthe }:
|
|
|
|
|
|
|
|
|
|
buildMix {
|
|
|
|
|
name = "absinthe_plug";
|
|
|
|
|
version = "1.0.0";
|
|
|
|
|
buildMix {
|
|
|
|
|
name = "absinthe_plug";
|
|
|
|
|
version = "1.0.0";
|
|
|
|
|
|
|
|
|
|
src = fetchHex {
|
|
|
|
|
pkg = "absinthe_plug";
|
|
|
|
|
version = "1.0.0";
|
|
|
|
|
sha256 = "08459823fe1fd4f0325a8bf0c937a4520583a5a26d73b193040ab30a1dfc0b33";
|
|
|
|
|
};
|
|
|
|
|
src = fetchHex {
|
|
|
|
|
pkg = "absinthe_plug";
|
|
|
|
|
version = "1.0.0";
|
|
|
|
|
sha256 = "08459823fe1fd4f0325a8bf0c937a4520583a5a26d73b193040ab30a1dfc0b33";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
beamDeps = [ plug absinthe ];
|
|
|
|
|
beamDeps = [ plug absinthe ];
|
|
|
|
|
|
|
|
|
|
meta = {
|
|
|
|
|
description = ''
|
|
|
|
|
A plug for Absinthe, an experimental GraphQL toolkit
|
|
|
|
|
'';
|
|
|
|
|
license = stdenv.lib.licenses.bsd3;
|
|
|
|
|
homepage = https://github.com/CargoSense/absinthe_plug;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
</programlisting>
|
|
|
|
|
meta = {
|
|
|
|
|
description = ''
|
|
|
|
|
A plug for Absinthe, an experimental GraphQL toolkit
|
|
|
|
|
'';
|
|
|
|
|
license = stdenv.lib.licenses.bsd3;
|
|
|
|
|
homepage = https://github.com/CargoSense/absinthe_plug;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Alternatively, we can use <literal>buildHex</literal> as a shortcut:
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
{ buildHex, buildMix, plug, absinthe }:
|
|
|
|
|
{ buildHex, buildMix, plug, absinthe }:
|
|
|
|
|
|
|
|
|
|
buildHex {
|
|
|
|
|
name = "absinthe_plug";
|
|
|
|
|
version = "1.0.0";
|
|
|
|
|
buildHex {
|
|
|
|
|
name = "absinthe_plug";
|
|
|
|
|
version = "1.0.0";
|
|
|
|
|
|
|
|
|
|
sha256 = "08459823fe1fd4f0325a8bf0c937a4520583a5a26d73b193040ab30a1dfc0b33";
|
|
|
|
|
sha256 = "08459823fe1fd4f0325a8bf0c937a4520583a5a26d73b193040ab30a1dfc0b33";
|
|
|
|
|
|
|
|
|
|
builder = buildMix;
|
|
|
|
|
builder = buildMix;
|
|
|
|
|
|
|
|
|
|
beamDeps = [ plug absinthe ];
|
|
|
|
|
beamDeps = [ plug absinthe ];
|
|
|
|
|
|
|
|
|
|
meta = {
|
|
|
|
|
description = ''
|
|
|
|
|
A plug for Absinthe, an experimental GraphQL toolkit
|
|
|
|
|
'';
|
|
|
|
|
license = stdenv.lib.licenses.bsd3;
|
|
|
|
|
homepage = https://github.com/CargoSense/absinthe_plug;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
</programlisting>
|
|
|
|
|
meta = {
|
|
|
|
|
description = ''
|
|
|
|
|
A plug for Absinthe, an experimental GraphQL toolkit
|
|
|
|
|
'';
|
|
|
|
|
license = stdenv.lib.licenses.bsd3;
|
|
|
|
|
homepage = https://github.com/CargoSense/absinthe_plug;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
</programlisting>
|
|
|
|
|
</section>
|
|
|
|
|
</section>
|
|
|
|
|
</section>
|
|
|
|
@@ -330,47 +330,47 @@ $ nix-env -f "<nixpkgs>" -iA beamPackages.ibrowse
|
|
|
|
|
could do the following:
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
$ nix-shell -A beamPackages.ibrowse.env --run "erl"
|
|
|
|
|
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
|
|
|
|
|
<screen>
|
|
|
|
|
<prompt>$ </prompt><userinput>nix-shell -A beamPackages.ibrowse.env --run "erl"</userinput>
|
|
|
|
|
<computeroutput>Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
|
|
|
|
|
|
|
|
|
|
Eshell V7.0 (abort with ^G)
|
|
|
|
|
1> m(ibrowse).
|
|
|
|
|
Module: ibrowse
|
|
|
|
|
MD5: 3b3e0137d0cbb28070146978a3392945
|
|
|
|
|
Compiled: January 10 2016, 23:34
|
|
|
|
|
Object file: /nix/store/g1rlf65rdgjs4abbyj4grp37ry7ywivj-ibrowse-4.2.2/lib/erlang/lib/ibrowse-4.2.2/ebin/ibrowse.beam
|
|
|
|
|
Compiler options: [{outdir,"/tmp/nix-build-ibrowse-4.2.2.drv-0/hex-source-ibrowse-4.2.2/_build/default/lib/ibrowse/ebin"},
|
|
|
|
|
debug_info,debug_info,nowarn_shadow_vars,
|
|
|
|
|
warn_unused_import,warn_unused_vars,warnings_as_errors,
|
|
|
|
|
{i,"/tmp/nix-build-ibrowse-4.2.2.drv-0/hex-source-ibrowse-4.2.2/_build/default/lib/ibrowse/include"}]
|
|
|
|
|
Exports:
|
|
|
|
|
add_config/1 send_req_direct/7
|
|
|
|
|
all_trace_off/0 set_dest/3
|
|
|
|
|
code_change/3 set_max_attempts/3
|
|
|
|
|
get_config_value/1 set_max_pipeline_size/3
|
|
|
|
|
get_config_value/2 set_max_sessions/3
|
|
|
|
|
get_metrics/0 show_dest_status/0
|
|
|
|
|
get_metrics/2 show_dest_status/1
|
|
|
|
|
handle_call/3 show_dest_status/2
|
|
|
|
|
handle_cast/2 spawn_link_worker_process/1
|
|
|
|
|
handle_info/2 spawn_link_worker_process/2
|
|
|
|
|
init/1 spawn_worker_process/1
|
|
|
|
|
module_info/0 spawn_worker_process/2
|
|
|
|
|
module_info/1 start/0
|
|
|
|
|
rescan_config/0 start_link/0
|
|
|
|
|
rescan_config/1 stop/0
|
|
|
|
|
send_req/3 stop_worker_process/1
|
|
|
|
|
send_req/4 stream_close/1
|
|
|
|
|
send_req/5 stream_next/1
|
|
|
|
|
send_req/6 terminate/2
|
|
|
|
|
send_req_direct/4 trace_off/0
|
|
|
|
|
send_req_direct/5 trace_off/2
|
|
|
|
|
send_req_direct/6 trace_on/0
|
|
|
|
|
trace_on/2
|
|
|
|
|
ok
|
|
|
|
|
2>
|
|
|
|
|
</programlisting>
|
|
|
|
|
Eshell V7.0 (abort with ^G)</computeroutput>
|
|
|
|
|
<prompt>1> </prompt><userinput>m(ibrowse).</userinput>
|
|
|
|
|
<computeroutput>Module: ibrowse
|
|
|
|
|
MD5: 3b3e0137d0cbb28070146978a3392945
|
|
|
|
|
Compiled: January 10 2016, 23:34
|
|
|
|
|
Object file: /nix/store/g1rlf65rdgjs4abbyj4grp37ry7ywivj-ibrowse-4.2.2/lib/erlang/lib/ibrowse-4.2.2/ebin/ibrowse.beam
|
|
|
|
|
Compiler options: [{outdir,"/tmp/nix-build-ibrowse-4.2.2.drv-0/hex-source-ibrowse-4.2.2/_build/default/lib/ibrowse/ebin"},
|
|
|
|
|
debug_info,debug_info,nowarn_shadow_vars,
|
|
|
|
|
warn_unused_import,warn_unused_vars,warnings_as_errors,
|
|
|
|
|
{i,"/tmp/nix-build-ibrowse-4.2.2.drv-0/hex-source-ibrowse-4.2.2/_build/default/lib/ibrowse/include"}]
|
|
|
|
|
Exports:
|
|
|
|
|
add_config/1 send_req_direct/7
|
|
|
|
|
all_trace_off/0 set_dest/3
|
|
|
|
|
code_change/3 set_max_attempts/3
|
|
|
|
|
get_config_value/1 set_max_pipeline_size/3
|
|
|
|
|
get_config_value/2 set_max_sessions/3
|
|
|
|
|
get_metrics/0 show_dest_status/0
|
|
|
|
|
get_metrics/2 show_dest_status/1
|
|
|
|
|
handle_call/3 show_dest_status/2
|
|
|
|
|
handle_cast/2 spawn_link_worker_process/1
|
|
|
|
|
handle_info/2 spawn_link_worker_process/2
|
|
|
|
|
init/1 spawn_worker_process/1
|
|
|
|
|
module_info/0 spawn_worker_process/2
|
|
|
|
|
module_info/1 start/0
|
|
|
|
|
rescan_config/0 start_link/0
|
|
|
|
|
rescan_config/1 stop/0
|
|
|
|
|
send_req/3 stop_worker_process/1
|
|
|
|
|
send_req/4 stream_close/1
|
|
|
|
|
send_req/5 stream_next/1
|
|
|
|
|
send_req/6 terminate/2
|
|
|
|
|
send_req_direct/4 trace_off/0
|
|
|
|
|
send_req_direct/5 trace_off/2
|
|
|
|
|
send_req_direct/6 trace_on/0
|
|
|
|
|
trace_on/2
|
|
|
|
|
ok</computeroutput>
|
|
|
|
|
<prompt>2></prompt>
|
|
|
|
|
</screen>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Notice the <literal>-A beamPackages.ibrowse.env</literal>. That is the key
|
|
|
|
@@ -408,7 +408,7 @@ let
|
|
|
|
|
in
|
|
|
|
|
|
|
|
|
|
drv
|
|
|
|
|
</programlisting>
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
|
|
<section xml:id="building-in-a-shell">
|
|
|
|
|
<title>Building in a Shell (for Mix Projects)</title>
|
|
|
|
@@ -474,7 +474,7 @@ plt:
|
|
|
|
|
analyze: build plt
|
|
|
|
|
$(NIX_SHELL) --run "mix dialyzer --no-compile"
|
|
|
|
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Using a <literal>shell.nix</literal> as described (see
|
|
|
|
@@ -513,9 +513,9 @@ analyze: build plt
|
|
|
|
|
<literal>nixpkgs</literal> repository:
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
$ nix-build -A beamPackages
|
|
|
|
|
</programlisting>
|
|
|
|
|
<screen>
|
|
|
|
|
<prompt>$ </prompt>nix-build -A beamPackages
|
|
|
|
|
</screen>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
That will attempt to build every package in <literal>beamPackages</literal>.
|
|
|
|
|