about summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2012-03-14 18:59:09 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2012-03-14 18:59:09 +0000
commit635d1d9bec82b5bd973404c2a360e55a1ef2a6b7 (patch)
tree4c53a1a9ab99c6d75649c38a2c4b179c01c52751 /pkgs/misc
parenta2889848434e42e3a48dac11e7576895a277341d (diff)
downloadnixlib-635d1d9bec82b5bd973404c2a360e55a1ef2a6b7.tar
nixlib-635d1d9bec82b5bd973404c2a360e55a1ef2a6b7.tar.gz
nixlib-635d1d9bec82b5bd973404c2a360e55a1ef2a6b7.tar.bz2
nixlib-635d1d9bec82b5bd973404c2a360e55a1ef2a6b7.tar.lz
nixlib-635d1d9bec82b5bd973404c2a360e55a1ef2a6b7.tar.xz
nixlib-635d1d9bec82b5bd973404c2a360e55a1ef2a6b7.tar.zst
nixlib-635d1d9bec82b5bd973404c2a360e55a1ef2a6b7.zip
I try to improve the documentation on my-env
svn path=/nixpkgs/trunk/; revision=33075
Diffstat (limited to 'pkgs/misc')
-rw-r--r--pkgs/misc/my-env/default.nix71
1 files changed, 33 insertions, 38 deletions
diff --git a/pkgs/misc/my-env/default.nix b/pkgs/misc/my-env/default.nix
index 51c9e5a5418a..65d8feb9ede9 100644
--- a/pkgs/misc/my-env/default.nix
+++ b/pkgs/misc/my-env/default.nix
@@ -1,18 +1,34 @@
-# idea: provide nix environment for your developement actions
-# experimental
-
+# idea: provide a build environments for your developement of preference
 /*
-  # example:
-  # add postgresql to environment and create ctags (tagfiles can be extracted from TAG_FILES)
-  # add this to your ~/.nixpkgs/config.nix
+  #### examples of use: ####
+  # Add this to your ~/.nixpkgs/config.nix:
+  {
+    packageOverrides = pkgs : with pkgs;
+      sdlEnv = pkgs.myEnvFun {
+          name = "sdl";
+          buildInputs = [ stdenv SDL SDL_image SDL_ttf SDL_gfx cmake SDL_net  pkgconfig];
+      };
+    };
+  }
+
+  # Then you can install it by:   nix-env -i sdl-env
+  # And you can load it simply calling:  load-sdl-env
+  # and in the new shell spawn you will have 'make' and 'gcc' finding the SDL headers and libs.
+  # Type 'exit', and you will exit it
 
+
+  ##### Another example, more complicated but achieving more: #######
+  # Make an environment to build nix from source and create ctags (tagfiles can
+  # be extracted from TAG_FILES) from every source package. Here would be a
+  # full ~/.nixpkgs/config.nix
   {
     packageOverrides = pkgs : with pkgs; with sourceAndTags;
-    let simple = { name, buildInputs ? [], cTags ? [], extraCmds ? ""}:
+    let complicatedMyEnv = { name, buildInputs ? [], cTags ? [], extraCmds ? ""}:
             pkgs.myEnvFun {
               inherit name;
             buildInputs = buildInputs 
-                  ++ map (x : sourceWithTagsDerivation ( (addCTaggingInfo x ).passthru.sourceWithTags ) ) cTags;
+                  ++ map (x : sourceWithTagsDerivation
+                    ( (addCTaggingInfo x ).passthru.sourceWithTags ) ) cTags;
             extraCmds = ''
               ${extraCmds}
               HOME=${builtins.getEnv "HOME"}
@@ -21,41 +37,20 @@
           };
     in rec {
       # this is the example we will be using
-      nixEnv = simple {
-       name = "mytestenv";
-       buildInputs = [ libtool stdenv perl curl bzip2 openssl db45 autoconf automake zlib ];
-      };
-      # this is a second example (not covered here but still useful) - given by viric
-      sdlEnv = pkgs.myEnvFun {
-          name = "sdl";
-          buildInputs = [ stdenv SDL SDL_image SDL_ttf SDL_gfx cmake SDL_net  pkgconfig];
+      nixEnv = complicatedMyEnv {
+        name = "nix";
+        buildInputs = [ libtool stdenv perl curl bzip2 openssl db45 autoconf automake zlib ];
       };
-      # add more environments below here, just follow the syntax given in the above examples
     };
   }
 
-  put this into your .bashrc
-    loadEnv(){ . "${HOME}/.nix-profile/dev-envs/${1}"; }
-
-  afterwards execute the new bash shell:
-    $ bash
-
-  the nix expression created is called: env-mytestenv and must appear when searching for it using:
-    $ nix-env -qa '*' | grep nix
-      env-mytestenv
-
-  now we should build our newly defined custom environment using this command on a shell, so type:
-    $ nix-env -iA env-mytestenv
-
-  afterwards load the new environment using:
-    $ loadEnv mytestenv
-  one could also use this function instead:
-    $ load-mytestenv-env
-  the result using either command should be:
-    env-mytestenv loaded
+  Now we should build our newly defined custom environment using this command on a shell, so type:
+    $ nix-env -i env-nix
 
-  note: after you typed the above command you will lose all the other tools usually found in a shell you are used to. in this
-        example you will not be able to type 'vi' to edit a file as vi is not included in the dependencies
+  One could also use this function instead:
+    $ load-nix-env
+  The result using either command should be:
+    env-nix loaded
 */
 
 { mkDerivation, substituteAll, pkgs } : { stdenv ? pkgs.stdenv, name, buildInputs ? [], cTags ? [], extraCmds ? ""} :