README.md

# Flakify

Easily set up a Nix flake-based development environment for your
Elixir/Phoenix-project.

## Usage

To create a new Phoenix project that's already initialized with a Nix flake, run the following command:

```
mix igniter.new flakify_test --install flakify --with phx.new --with-args="--no-ecto"
```

This will:

 - Add a `flake.nix` with a development shell that contains elixir, tailwind and
   esbuild. And also sets the `MIX_TAILWIND_PATH` and `MIX_ESBUILD_PATH`
   environment variables.

 - Modify `config/config.exs` such that the `esbuild` and `tailwind`
   configurations use `MIX_ESBUILD_PATH` and `MIX_TAILWIND_PATH` respectively to
   find the corresponding executables.

After performing the install, you should be able to run `nix develop -c mix
phx.server` to run the Phoenix server using the flake development environment.

In an existing project, you can run:

```
mix igniter.install flakify
```

After running the installer, flakify will remove itself from your project
dependencies.

## TODO

 - [ ] Add option to also add a package definition to `flake.nix`, probably using `deps_nix`.
 - [ ] Add option to specify whether tailwind and esbuild should actually be installed.