Command line tools
To install the command line tools refer to the Installing nix-tools section.
stack-to-nix
stack-to-nix - a stack to nix converter
Usage: stack-to-nix (-o|--output DIR) [--stack-yaml FILE]
[--ignore-package-yaml] [--cache FILE]
Generate a Nix expression for a Haskell package using Stack
Available options:
-o,--output DIR Generate output in DIR
--stack-yaml FILE Override project stack.yaml (default: "stack.yaml")
--ignore-package-yaml disable hpack run and use only cabal disregarding
package.yaml existence
--cache FILE Dependency cache
file (default: ".stack-to-nix.cache")
-h,--help Show this help text
Use this for stack projects. If a default.nix
does not exist in the
output directory, it will create a basic one with a
mkStackPkgSet
function.
Note:
If you find that there are missing files which should have been generated, remove
.stack-to-nix.cache
(The open issue is #57).
plan-to-nix
plan-to-nix - a stack to nix converter
Usage: plan-to-nix (-o|--output DIR) [--plan-json FILE] [--cabal-project FILE]
[--cache FILE]
Generate a Nix expression for a Haskell package using Cabal
Available options:
-o,--output DIR Generate output in DIR
--plan-json FILE Override plan.json
location (default: "dist-newstyle/cache/plan.json")
--cabal-project FILE Override path to
cabal.project (default: "cabal.project")
--cache FILE Dependency cache file (default: ".nix-tools.cache")
-h,--help Show this help text
Use this for Cabal new-build projects (even if you don't have a
cabal.project
). Before running, you need to create a plan. For more
information, see Cabal Projects in the user
guide.
It will create a template default.nix
in the output directory,
unless that file already exists.
Inside the output directory, there will be another directory
.plan.nix
, which contains Nix expressions for all local packages,
generated by cabal-to-nix
. The output file pkgs.nix
refers to
these files.
Note:
If you find that there are missing files which should have been generated, remove
.nix-tools.cache
(The open issue is #57).
cabal-to-nix
Usage: cabal-to-nix FILE.cabal
This writes (to stdout) a Haskell.nix Nix expression for the given cabal package.
Normally, you do not need to run cabal-to-nix
yourself. It is called
by stack-to-nix
and plan-to-nix
.