puma-dev with direnv

I use direnv in combination with Nix for managing the environment for nearly all of my projects. Now that I’m using puma-dev, I wanted to make that start apps in the Nix environment specified in the project’s shell.nix, as well as have any other direnv stuff work.

It took me a little bit to figure this out, so in case it’s useful, here you go. Throw this in your ~/.powconfig and it should just work!

ABSPWD="$(readlink "${PWD}")"

# Load direnv, if allowed
if test -f .envrc; then
	echo "powconfig: loading direnv from ${ABSPWD}"
	eval "$(direnv exec "${ABSPWD}" direnv dump bash)"