diff --git a/direnv-cache b/direnv-cache index 17370ce..9b45f20 100755 --- a/direnv-cache +++ b/direnv-cache @@ -70,9 +70,23 @@ getCacheFilePath() { echo "${cacheDir}/$(pwd | sha1sum | tr -d ' -')" } +switchToDirenvDir() { + # Find directory that contains the current .envrc. Allows direnv-cache to + # be called from subdirectories. + wd="$(pwd)" + + if [[ -n $DIRENV_DIR ]]; then + wd="${DIRENV_DIR#-}" + fi + + cd "$wd" +} + cmd="$1" -if ! [[ -e .envrc ]]; then +switchToDirenvDir + +if ! [[ -e ".envrc" ]]; then echo "Error, no .envrc found in current directory" exit 1 fi