diff options
Diffstat (limited to 'pkgs/development/interpreters/lua-5/setup-hook.sh')
-rw-r--r-- | pkgs/development/interpreters/lua-5/setup-hook.sh | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/pkgs/development/interpreters/lua-5/setup-hook.sh b/pkgs/development/interpreters/lua-5/setup-hook.sh index 3989bedffdb..f7e56b62ac9 100644 --- a/pkgs/development/interpreters/lua-5/setup-hook.sh +++ b/pkgs/development/interpreters/lua-5/setup-hook.sh @@ -1,47 +1,47 @@ # set -e nix_print() { - if [ ${NIX_DEBUG:-0} -ge $1 ]; then - echo "$2" - fi + if [ ${NIX_DEBUG:-0} -ge $1 ]; then + echo "$2" + fi } nix_debug() { - nix_print 3 "$1" + nix_print 3 "$1" } addToLuaSearchPathWithCustomDelimiter() { - local varName="$1" - local absPattern="$2" - # delete longest match starting from the lua placeholder '?' - local topDir="${absPattern%%\?*}" + local varName="$1" + local absPattern="$2" + # delete longest match starting from the lua placeholder '?' + local topDir="${absPattern%%\?*}" - # export only if the folder exists else LUA_PATH grows too big - if [ ! -d "$topDir" ]; then return; fi + # export only if the folder exists else LUA_PATH/LUA_CPATH grow too large + if [[ ! -d "$topDir" ]]; then return; fi - export "${varName}=${!varName:+${!varName};}${absPattern}" + # export only if we haven't already got this dir in the search path + if [[ ${!varName} == *"$absPattern"* ]]; then return; fi + + export "${varName}=${!varName:+${!varName};}${absPattern}" } addToLuaPath() { - local dir="$1" - - if [[ ! -d "$dir" ]]; then - nix_debug "$dir not a directory abort" - return 0 - fi - cd "$dir" - for pattern in @luapathsearchpaths@; - do - addToLuaSearchPathWithCustomDelimiter NIX_LUA_PATH "$PWD/$pattern" - done - - # LUA_CPATH - for pattern in @luacpathsearchpaths@; - do - addToLuaSearchPathWithCustomDelimiter NIX_LUA_CPATH "$PWD/$pattern" - done - cd - >/dev/null + local dir="$1" + + if [[ ! -d "$dir" ]]; then + nix_debug "$dir not a directory abort" + return 0 + fi + cd "$dir" + for pattern in @luapathsearchpaths@; do + addToLuaSearchPathWithCustomDelimiter LUA_PATH "$PWD/$pattern" + done + + # LUA_CPATH + for pattern in @luacpathsearchpaths@; do + addToLuaSearchPathWithCustomDelimiter LUA_CPATH "$PWD/$pattern" + done + cd - >/dev/null } addEnvHooks "$hostOffset" addToLuaPath - |