diff --git a/direnvrc b/direnvrc index ac7edc8..c3b3635 100644 --- a/direnvrc +++ b/direnvrc @@ -3,8 +3,14 @@ use_nix() { if [ -f "${path}/.version-suffix" ]; then local version="$(< $path/.version-suffix)" - elif [ -f "${path}/.git" ]; then - local version="$(< $(< ${path}/.git/HEAD))" + elif [ -d "${path}/.git" ]; then + local head=$(< ${path}/.git/HEAD) + local regex="ref: (.*)" + if [[ "$head" =~ $regex ]]; then + local version=$(< ".git/${BASH_REMATCH[1]}") + else + local version="$head" + fi fi local cache=".direnv/cache-${version:-unknown}" @@ -63,4 +69,4 @@ use_nix() { watch_file default.nix watch_file shell.nix fi -} \ No newline at end of file +}