Skip to content

cachix/elm2nix

Repository files navigation

elm2nix

Build Status Hackage

Convert an Elm project into Nix expressions.

It consists of multiple commands:

  • elm2nix convert: Given elm.json in current directory, all dependencies are parsed and their sha256sum calculated
  • elm2nix snapshot: Reads packages from elm.json and writes them to binary cache file registry.dat used by elm-compiler.
  • elm2nix init: Generates default.nix that glues everything together

Assumptions

Supports Elm 0.19.1

Installation

It's already included in devenv when using Elm:

{
  langauges.elm.enable = true;

  tasks = {
    "frontend:elm2nix" = {
      exec = "cd frontend && elm2nix convert > elm-srcs.nix && elm2nix snapshot";
      execIfModified = [ "frontend/elm.json" ];
      before = [ "devenv:enterShell" ];
    };
  };

}

Running tests (as per CI)

$ ./scripts/tests.sh

FAQ

Why is mkDerivation inlined into default.nix?

As it's considered experimental, it's generated for now. Might change in the future.

How do I use elm2nix with ParcelJS and Yarn?

Instead of running elm2nix init, create a default.nix with the following derivation:

#49 (comment)

About

Convert Elm project into Nix expressions

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 13