3838# First order of business, see whether we can setup asdf
3939echo " Looking for asdf install" >&2
4040
41+ readlink_f () {
42+ cd " $( dirname " $1 " ) " > /dev/null || exit 1
43+ filename=" $( basename " $1 " ) "
44+ if [ -h " $filename " ]; then
45+ readlink_f " $( readlink " $filename " ) "
46+ else
47+ echo " $( pwd -P) /$filename "
48+ fi
49+ }
50+
51+ export_stdlib_path () {
52+ which_elixir_expr=$1
53+ stdlib_path=$( eval " $which_elixir_expr " )
54+ stdlib_real_path=$( readlink_f " $stdlib_path " )
55+ ELX_STDLIB_PATH=$( echo " $stdlib_real_path " | sed " s/\(.*\)\/bin\/elixir/\1/" )
56+ export ELX_STDLIB_PATH
57+ }
58+
4159# Check if we have the asdf binary for version >= 0.16.0
4260if command -v asdf > /dev/null 2>&1 ; then
4361 asdf_version=$( asdf --version 2> /dev/null)
@@ -58,6 +76,7 @@ if command -v asdf >/dev/null 2>&1; then
5876 else
5977 >&2 echo " asdf executable found at $( command -v asdf) . Using ASDF_DIR=${ASDF_DIR} , ASDF_DATA_DIR=${ASDF_DATA_DIR} ."
6078 fi
79+ export_stdlib_path " asdf which elixir"
6180else
6281 # Fallback to old method for version <= 0.15.x
6382 ASDF_DIR=${ASDF_DIR:- " ${HOME} /.asdf" }
6685 >&2 echo " Legacy pre v0.16.0 asdf install found at $ASDF_SH , sourcing"
6786 # Source the old asdf.sh script for versions <= 0.15.0
6887 . " $ASDF_SH "
88+ export_stdlib_path " asdf which elixir"
6989 else
7090 >&2 echo " asdf not found"
7191 >&2 echo " Looking for mise executable"
7494 if command -v mise > /dev/null 2>&1 ; then
7595 >&2 echo " mise executable found at $( command -v mise) , activating"
7696 eval " $( $( command -v mise) env -s " $preferred_shell " ) "
97+ export_stdlib_path " mise which elixir"
7798 else
7899 >&2 echo " mise not found"
79100 >&2 echo " Looking for rtx executable"
82103 if command -v rtx > /dev/null 2>&1 ; then
83104 >&2 echo " rtx executable found at $( command -v rtx) , activating"
84105 eval " $( $( command -v rtx) env -s " $preferred_shell " ) "
106+ export_stdlib_path " rtx which elixir"
85107 else
86108 >&2 echo " rtx not found"
87109 >&2 echo " Looking for vfox executable"
92114 eval " $( $( command -v vfox) activate " $preferred_shell " ) "
93115 else
94116 >&2 echo " vfox not found"
117+ export_stdlib_path " which elixir"
95118 fi
96119 fi
97120 fi
115138# script so we can correctly configure the Erlang library path to
116139# include the local .ez files, and then do what we were asked to do.
117140
118- readlink_f () {
119- cd " $( dirname " $1 " ) " > /dev/null || exit 1
120- filename=" $( basename " $1 " ) "
121- if [ -h " $filename " ]; then
122- readlink_f " $( readlink " $filename " ) "
123- else
124- echo " $( pwd -P) /$filename "
125- fi
126- }
127-
128141if [ -z " ${ELS_INSTALL_PREFIX} " ]; then
129142 SCRIPT=$( readlink_f " $0 " )
130143 SCRIPTPATH=$( dirname " $SCRIPT " )
0 commit comments