I’ve run into an issue with storing vars in atuin dotfiles
around ordering of ENV vars with “dependencies”. Take this go example:
export GOPATH=~/code/go
export GOBIN="$GOPATH/bin"
If I’d like to store both of those in atuin dotfiles, I’d run something like:
$ atuin dotfiles var set GOPATH ~/code/go
$ atuin dotfiles var set GOBIN '$GOPATH/bin'
Unfortunately, it looks like vars are stored alphabetically so both the cached ~/.local/share/atuin/dotfiles/cache/vars.*
files and atuin dotfiles list
have those stored as:
export GOBIN=$GOPATH/bin
export GOPATH=/Users/caleb/code/go
…which results in $GOBIN
being set to /bin
. I could (and will) set the full path of $GOBIN
as a workaround, but doing so duplicates configuration such that I’d need to change two vars if my preferred $GOPATH
changed.
It would be nicer if we could either configure ordering of vars or even better if Atuin were able to identify dependencies and order exports based on them. An MVP might simply be to store vars in the order they are set, but that could be brittle with updating existing variables potentially changing ordering.