diff --git a/contrib/direnv-hook.sh b/contrib/direnv-hook.sh new file mode 100644 index 0000000..2373116 --- /dev/null +++ b/contrib/direnv-hook.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +source ./shell-hook.sh + +[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_ROOT: ${PRJ_ROOT}" +[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_ID: ${PRJ_ID-none}" +[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_CONFIG_HOME: ${PRJ_CONFIG_HOME#"${PRJ_ROOT}"/}" +[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_RUNTIME_DIR: ${PRJ_RUNTIME_DIR#"${PRJ_ROOT}"/}" +[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_CACHE_HOME: ${PRJ_CACHE_HOME#"${PRJ_ROOT}"/}" +[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_DATA_HOME: ${PRJ_DATA_HOME#"${PRJ_ROOT}"/}" +[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_PATH: ${PRJ_PATH#"${PRJ_ROOT}"/}" + +# shellcheck disable=SC2034 +direnv_layout_dir="${PRJ_DATA_HOME}/direnv" diff --git a/contrib/direnv b/contrib/shell-hook.sh similarity index 67% rename from contrib/direnv rename to contrib/shell-hook.sh index 25b1a65..779a3b5 100644 --- a/contrib/direnv +++ b/contrib/shell-hook.sh @@ -2,7 +2,7 @@ # Discover PRJ_ROOT if not found via git (i.e. not in a git repository). # Look for the .config folder in the current directory and up -find_prj_config() ( +__find_prj_root_with_config_dir() ( local old_pwd while [[ $old_pwd != "$PWD" ]]; do if [[ -d .config && "$HOME" != "$PWD" ]]; then @@ -18,7 +18,7 @@ find_prj_config() ( ) # Discover PRJ_ROOT if in a git repository. -find_prj_root_with_git() ( +__find_prj_root_with_git() ( git rev-parse --show-toplevel 2>/dev/null ) @@ -28,8 +28,8 @@ find_prj_root_with_git() ( : "${XDG_DATA_HOME:=${HOME}/.local/share}" # PRJ_ROOT - _prj_root="$(find_prj_root_with_git)" - : "${PRJ_ROOT:=${_prj_root:=$(find_prj_config)}}" + _prj_root="$(__find_prj_root_with_git)" + : "${PRJ_ROOT:=${_prj_root:=$(__find_prj_root_with_config_dir)}}" # PRJ_CONFIG_HOME - always local to the project : "${PRJ_CONFIG_HOME:=${PRJ_ROOT}/.config}" @@ -74,9 +74,11 @@ find_prj_root_with_git() ( mkdir -p "${PRJ_PATH}" } -unset -f find_prj_config +unset -f __find_prj_root_with_config_dir +unset -f __find_prj_root_with_git + +export PATH="${PRJ_PATH}:${PATH}" -PATH_add "${PRJ_PATH}" export PRJ_ROOT export PRJ_ID export PRJ_PATH @@ -84,13 +86,3 @@ export PRJ_CONFIG_HOME export PRJ_CACHE_HOME export PRJ_DATA_HOME export PRJ_RUNTIME_DIR -[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_ROOT: ${PRJ_ROOT}" -[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_ID: ${PRJ_ID-none}" -[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_CONFIG_HOME: ${PRJ_CONFIG_HOME#"${PRJ_ROOT}"/}" -[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_RUNTIME_DIR: ${PRJ_RUNTIME_DIR#"${PRJ_ROOT}"/}" -[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_CACHE_HOME: ${PRJ_CACHE_HOME#"${PRJ_ROOT}"/}" -[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_DATA_HOME: ${PRJ_DATA_HOME#"${PRJ_ROOT}"/}" -[ -z ${DIRENV_PRJ_SILENCE+x} ] && log_status "PRJ_PATH: ${PRJ_PATH#"${PRJ_ROOT}"/}" - -# shellcheck disable=SC2034 -direnv_layout_dir="${PRJ_DATA_HOME}/direnv"