Nix, the purely functional package manager
Go to file
Eelco Dolstra a957893b26 Allow nix-shell to be used as a #! interpreter
This allows scripts to fetch their own dependencies via nix-shell. For
instance, here is a Haskell script that, when executed, pulls in GHC
and the HTTP package:

  #! /usr/bin/env nix-shell
  #! nix-shell -i runghc -p haskellPackages.ghc haskellPackages.HTTP

  import Network.HTTP

  main = do
    resp <- Network.HTTP.simpleHTTP (getRequest "http://nixos.org/")
    body <- getResponseBody resp
    print (take 100 body)

Or a Perl script that pulls in Perl and some CPAN packages:

  #! /usr/bin/env nix-shell
  #! nix-shell -i perl -p perl perlPackages.HTMLTokeParserSimple perlPackages.LWP

  use HTML::TokeParser::Simple;

  my $p = HTML::TokeParser::Simple->new(url => 'http://nixos.org/');

  while (my $token = $p->get_tag("a")) {
      my $href = $token->get_attr("href");
      print "$href\n" if $href;
  }

Note that the options to nix-shell must be given on a separate line
that starts with the magic string ‘#! nix-shell’. This is because
‘env’ does not allow passing arguments to an interpreter directly.
2015-01-08 14:32:45 +01:00
config Add config.guess, config.sub and install-sh 2013-11-25 11:26:02 +00:00
corepkgs Use proper quotes everywhere 2014-08-20 18:03:48 +02:00
doc Document how to set up build users on Mac OS X 2015-01-06 11:17:11 +01:00
misc Typo 2014-11-04 10:31:17 +01:00
mk Merge branch 'cygwin-master' of https://github.com/ternaris/nix 2014-12-14 01:49:14 +01:00
perl Link against perl.dll on Cygwin 2014-12-09 13:00:59 +01:00
scripts Allow nix-shell to be used as a #! interpreter 2015-01-08 14:32:45 +01:00
src Show position info for failing <...> lookups 2015-01-07 13:43:55 +01:00
tests Urgh 2014-12-11 09:58:29 +01:00
.gitignore Add exe, dll to .gitignore 2014-12-15 23:34:13 +08:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
configure.ac Rely on XML catalogs to find the DocBook schemas and stylesheets 2014-11-25 15:54:26 +01:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
dev-shell Make dev-shell script work on Darwin 2014-07-16 11:53:47 +02:00
INSTALL * Autoconf / Automake configuration and building. 2003-04-04 16:14:56 +00:00
local.mk Install config.h only once 2014-08-20 18:33:07 +02:00
Makefile Add a launchd configuration file to run nix-daemon 2014-11-04 10:30:22 +01:00
Makefile.config.in Rely on XML catalogs to find the DocBook schemas and stylesheets 2014-11-25 15:54:26 +01:00
nix.spec.in Update spec file 2014-09-18 15:42:01 +02:00
README * Install documentation in $(docdir) (i.e. share/doc/nix). 2008-11-19 13:19:09 +00:00
release.nix Include cacert in the binary tarball 2014-12-10 16:05:08 +01:00
version Bump version number 2014-12-15 18:05:56 +01:00

Nix is a purely functional package manager.  For installation and
usage instructions, please read the manual, which can be found in
`docs/manual/manual.html', and additionally at the Nix website at
<http://nixos.org/>.


Acknowledgments

This product includes software developed by the OpenSSL Project for
use in the OpenSSL Toolkit (http://www.OpenSSL.org/).