diff options
author | Nikolay Amiantov <ab@fmap.me> | 2016-01-23 12:02:09 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2016-01-23 12:02:09 +0300 |
commit | dc162f648ca18dee522c36b435b5cacead5e644c (patch) | |
tree | fe5a6ae9826d5c89539d0c312d2191e745f4f013 /doc | |
parent | c3abcd841584266e517dfe6a33e12541f60da485 (diff) | |
parent | a98dfaa6b96a00b6822f25ca7638d4ae7d57a855 (diff) |
Merge pull request #12284 from abbradar/bundlerenv-wrapper
bundlerEnv: add wrapper
Diffstat (limited to 'doc')
-rw-r--r-- | doc/languages-frameworks/ruby.xml | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/doc/languages-frameworks/ruby.xml b/doc/languages-frameworks/ruby.xml index a2b4475a4a548..d81422b610ee3 100644 --- a/doc/languages-frameworks/ruby.xml +++ b/doc/languages-frameworks/ruby.xml @@ -42,5 +42,37 @@ and scalable."; <para>Please check in the <filename>Gemfile</filename>, <filename>Gemfile.lock</filename> and the <filename>gemset.nix</filename> so future updates can be run easily. </para> +<para>Resulting derivations also have two helpful items, <literal>env</literal> and <literal>wrapper</literal>. The first one allows one to quickly drop into +<command>nix-shell</command> with the specified environment present. E.g. <command>nix-shell -A sensu.env</command> would give you an environment with Ruby preset +so it has all the libraries necessary for <literal>sensu</literal> in its paths. The second one can be used to make derivations from custom Ruby scripts which have +<filename>Gemfile</filename>s with their dependencies specified. It is a derivation with <command>ruby</command> wrapped so it can find all the needed dependencies. +For example, to make a derivation <literal>my-script</literal> for a <filename>my-script.rb</filename> (which should be placed in <filename>bin</filename>) you should +run <command>bundix</command> as specified above and then use <literal>bundlerEnv</literal> lile this:</para> + +<programlisting> +<![CDATA[let env = bundlerEnv { + name = "my-script-env"; + + inherit ruby; + gemfile = ./Gemfile; + lockfile = ./Gemfile.lock; + gemset = ./gemset.nix; +}; + +in stdenv.mkDerivation { + name = "my-script"; + + buildInputs = [ env.wrapper ]; + + script = ./my-script.rb; + + buildCommand = '' + mkdir -p $out/bin + install -D -m755 $script $out/bin/my-script + patchShebangs $out/bin/my-script + ''; +}]]> +</programlisting> + </section> |