about summary refs log tree commit diff
path: root/README.md
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-09-09T16·09+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-09-09T16·09+0200
commitae50a5e7bee19cb6de331e847936ea8afa0ba8b6 (patch)
treebfccea73a0803591c0ff6ca02ea8e8edd26066f7 /README.md
parentdc670a173ab22d344c5d77d502798f0296f572cc (diff)
Add a README
Diffstat (limited to 'README.md')
-rw-r--r--README.md104
1 files changed, 104 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 000000000000..af2d27a2067c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,104 @@
+nix-repl
+========
+
+`nix-repl` is a simple read–eval–print loop (REPL) for the Nix package
+manager.
+
+Installation
+------------
+
+Assuming you have Nix installed, just do
+
+  $ git clone https://github.com/edolstra/nix-repl.git
+  $ cd nix-repl
+  $ nix-env -f . -i nix-repl
+
+Example
+-------
+
+Here is a typical `nix-repl` session:
+
+  $ nix-repl
+  Welcome to Nix version 1.6pre3215_2c1ecf8. Type :? for help.
+
+  nix-repl> 3 * 4
+  12
+
+  nix-repl> :l <nixpkgs>
+  Added 3337 variables.
+
+  nix-repl> lib.range 1 5
+  [ 1 2 3 4 5 ]
+
+  nix-repl> :a lib
+  Added 299 variables.
+
+  nix-repl> range 1 5
+  [ 1 2 3 4 5 ]
+
+  nix-repl> xs = range 1 5
+
+  nix-repl> map (x: x * x) xs
+  [ 1 4 9 16 25 ]
+
+  nix-repl> :l <nixos>
+  Added 7 variables.
+
+  nix-repl> config.services.dhcpd
+  { configFile = null; enable = false; extraConfig = ""; interfaces = [ ... ]; machines = [ ... ]; }
+
+  nix-repl> :p config.services.dhcpd
+  { configFile = null; enable = false; extraConfig = ""; interfaces = [ "eth0" ]; machines = [ ]; }
+
+  nix-repl> config.fileSystems
+  { "/" = { ... }; "/boot" = { ... }; }
+
+  nix-repl> mapAttrsToList (n: v: v.device) config.fileSystems
+  [ "/dev/disk/by-label/nixos" "/dev/disk/by-label/boot" ]
+
+  nix-repl> :b libjson
+  these derivations will be built:
+    /nix/store/h910xqb36pysxcxkayb1zkr1zcvvk1zy-libjson_7.6.1.zip.drv
+    /nix/store/iv0rdx08di0fg704zyxklkvdz6i96lm8-libjson-7.6.1.drv
+  ...
+  this derivation produced the following outputs:
+    out -> /nix/store/ys6bvgfia81rjwqxjlgkwnx6jhsml8h9-libjson-7.6.1
+
+  nix-repl> :t makeFontsConf
+  a function
+
+  nix-repl> :b makeFontsConf { fontDirectories = [ "${freefont_ttf}/share/fonts/truetype" ]; }
+  ...
+  this derivation produced the following outputs:
+    out -> /nix/store/jkw848xj0gkbhmvxi0hwpnhzn2716v3c-fonts.conf
+
+  nix-repl> :s pan
+  # Builds dependencies of the ‘pan’ derivation, then starts a shell
+  # in which the environment variables of the derivation are set
+
+  [nix-shell:/tmp/nix-repl]$ echo $src
+  /nix/store/0ibx15r02nnkwiclmfbpzrzjm2y204fh-pan-0.139.tar.bz2
+
+  [nix-shell:/tmp/nix-repl]$ exit
+
+  nix-repl>
+
+Tab completion works on variables in scope and on attribute sets.  For
+example:
+
+  $ nix-repl  '<nixpkgs>' '<nixos>'
+  Welcome to Nix version 1.6pre3215_2c1ecf8. Type :? for help.
+
+  nix-repl> thunder<TAB> => thunderbird
+
+  nix-repl> <TAB>
+  Display all 3634 possibilities? (y or n)
+
+  nix-repl> lib<TAB>
+  Display all 291 possibilities? (y or n)
+
+  nix-repl> xorg.libX<TAB>
+  xorg.libXdamage  xorg.libXdmcp
+
+  nix-repl> config.networking.use<TAB>
+  config.networking.useDHCP   config.networking.usePredictableInterfaceNames