I returned to a somewhat older Phoenix v1.6 application I had written that utilized direnv
to load environment variables from a .env
file.
Coming from Laravel, I'm highly used to this workflow and I found that using something like direnv
to inject the variables was better than the hacks I had been using at the time.
I started using asdf
as a version-manager-of-all-trades before moving over to rtx
. I liked its ergonomics and I had yet to run into an issue where I thought asdf
was a better choice until now.
The issue I was having was that for whatever reason direnv
wasn't executing upon entering the directory as I had been used to.
Running direnv status
showed output similar to the following:
direnv exec path /Users/jbrayton/.local/share/rtx/installs/direnv/2.32.2/bin/direnv
DIRENV_CONFIG /Users/jbrayton/.config/direnv
bash_path /usr/local/bin/bash
disable_stdin false
warn_timeout 5s
whitelist.prefix []
whitelist.exact map[]
No .envrc or .env loaded
There was more included but the key to focus on was No .envrc or .env loaded.
I ran through a couple of steps to try to figure out what was going on. I had found on their website that for the fish
shell that I likely needed to wire up the direnv hook fish | source
into my generic ~/.config/fish/config.fish
file.
To do that I installed direnv
via homebrew because previously using it with rtx
meant even my global usage wasn't global, or I was holding it wrong(tm).
What I was unaware of at the time was that when I went to update rtx
I saw that homebrew changed the name to mise
but the command mise
wasn't found.
After running brew install mise
I was able to see the following migration output:
migrating /Users/jbrayton/.local/share/rtx/installs/elixir to /Users/jbrayton/.local/share/mise/installs
migrated rtx directories to mise
see https://mise.jdx.dev/rtx.html
migrating /Users/jbrayton/.config/rtx to /Users/jbrayton/.config/mise
migrated rtx directories to mise
see https://mise.jdx.dev/rtx.html
I'm making this post primarily for my own benefit though I seriously doubt I would ever run into this again on this machine or another.
It's possible someone else may see similar weirdness with either one of the rtx
plugins or something similar.
From my understanding of all my other projects, rtx
was working flawlessly except for this one instance but it turned out that direnv
was broken for my entire system. The other projects that used it weren't working either.
If you see some weirdness with rtx
and you haven't migrated, performing the migration may help you move forward like it did for me.
It's also worth noting that the migration doesn't copy your installs and I have 10GB of data in my old installs directory that I'll need to prune.