Skip to content

Commit 23542d7

Browse files
committed
updated .envrc
1 parent 34599ce commit 23542d7

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

.envrc

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,15 @@
3636
#
3737
# direnv: loading .envrc
3838
# /bin/bash: line 226: $1: unbound variable
39+
#
40+
# source_up causes this error is up .envrc is found in parent directories:
41+
#
42+
# direnv: No ancestor .envrc found
3943

4044
set -euo pipefail
4145
[ -n "${DEBUG:-}" ] && set -x
42-
srcdir="$(cd "$(dirname "$(readlink "${BASH_SOURCE[0]}")" )" && pwd)"
46+
src="$(readlink -f "${BASH_SOURCE[0]}")"
47+
srcdir="$(cd "$(dirname "$src")" && pwd)"
4348

4449
# ============================================================================ #
4550
# P r e - C o m m i t
@@ -96,19 +101,35 @@ export COMPOSE_PROJECT_NAME="SQL-scripts"
96101
# P y t h o n , A W S , G C P , T e r r a f o r m
97102
# ============================================================================ #
98103

104+
# XXX: safer to bring all these external .envrc inline if you're worried about changes
105+
# to it bypassing 'direnv allow' authorization
99106
load_if_exists(){
107+
# first arg is a path to a .envrc
108+
# all other args are passed to the sourcing of .envrc - used by .envrc-kubernetes
109+
# to pass the context name 'docker-desktop' to switch to
100110
local envrc="$1"
101-
if [ -f "$srcdir/$envrc" ]; then
111+
shift
112+
if ! [[ "$envrc" =~ ^/ ]]; then
113+
envrc="$srcdir/$envrc"
114+
fi
115+
if [ -f "$envrc" ]; then
116+
# prevent looping on symlinks to this .envrc if given
117+
if [ "$(readlink "$envrc")" = "$src" ]; then
118+
return
119+
fi
102120
echo
103-
echo "Loading $srcdir/$envrc"
121+
echo "Loading $envrc"
104122
# shellcheck disable=SC1090,SC1091
105-
. "$srcdir/$envrc"
123+
. "$envrc" "$@"
106124
fi
107125
}
108126

127+
#load_if_exists ~/.envrc
128+
109129
#.envrc-aws \
110130
#.envrc-gcp \
111131
#.envrc-terraform \
132+
# shellcheck disable=SC2043
112133
for envrc in \
113134
.envrc-python \
114135
; do
@@ -132,11 +153,7 @@ fi
132153
# ============================================================================ #
133154

134155
if [ -f "$srcdir/.envrc-kubernetes" ]; then
135-
echo
136-
echo "Loading $srcdir/.envrc-kubernetes"
137-
# XXX: safer to inline .envrc-kubernetes if you're worried about changes to it bypassing 'direnv allow' authorization
138-
# shellcheck disable=SC1090,SC1091
139-
. "$srcdir/.envrc-kubernetes" docker-desktop
156+
load_if_exists .envrc-kubernetes docker-desktop
140157
fi
141158

142159
# ============================================================================ #

0 commit comments

Comments
 (0)