From 25196f4b994df5364eb060bff8418a0154622ed4 Mon Sep 17 00:00:00 2001 From: bitnitdit Date: Mon, 11 Sep 2017 20:57:17 +0800 Subject: Prevent .erlang from prepending string to the erl root dir Any output string from .erlang to stdout will be prepend to code:root_dir(), so it will cause the retrieved dir incorrect. The fix is to start erl with the no_dot_erlang boot file. --- priv/templates/bin | 2 +- priv/templates/bin_windows | 2 +- priv/templates/extended_bin | 2 +- priv/templates/extended_bin_windows | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/priv/templates/bin b/priv/templates/bin index 8bb6890..523b88d 100755 --- a/priv/templates/bin +++ b/priv/templates/bin @@ -22,7 +22,7 @@ find_erts_dir() { else __erl="$(which erl)" code="io:format(\"~s\", [code:root_dir()]), halt()." - __erl_root="$("$__erl" -noshell -eval "$code")" + __erl_root="$("$__erl" -boot no_dot_erlang -noshell -eval "$code")" ERTS_DIR="$__erl_root/erts-$ERTS_VSN" ROOTDIR="$__erl_root" fi diff --git a/priv/templates/bin_windows b/priv/templates/bin_windows index e66049e..b3ce796 100644 --- a/priv/templates/bin_windows +++ b/priv/templates/bin_windows @@ -60,7 +60,7 @@ cd %rootdir% @for /f "delims=" %%i in ('where erl') do ( set erl=%%i ) -@set dir_cmd="%erl%" -noshell -eval "io:format(\"~s\", [filename:nativename(code:root_dir())])." -s init stop +@set dir_cmd="%erl%" -boot no_dot_erlang -noshell -eval "io:format(\"~s\", [filename:nativename(code:root_dir())])." -s init stop @for /f "delims=" %%i in ('%%dir_cmd%%') do ( set erl_root=%%i ) diff --git a/priv/templates/extended_bin b/priv/templates/extended_bin index 71dd858..a48a917 100755 --- a/priv/templates/extended_bin +++ b/priv/templates/extended_bin @@ -120,7 +120,7 @@ find_erts_dir() { else __erl="$(which erl)" code="io:format(\"~s\", [code:root_dir()]), halt()." - __erl_root="$("$__erl" -noshell -eval "$code")" + __erl_root="$("$__erl" -boot no_dot_erlang -noshell -eval "$code")" ERTS_DIR="$__erl_root/erts-$ERTS_VSN" ROOTDIR="$__erl_root" fi diff --git a/priv/templates/extended_bin_windows b/priv/templates/extended_bin_windows index 139edaa..85c57f4 100644 --- a/priv/templates/extended_bin_windows +++ b/priv/templates/extended_bin_windows @@ -98,7 +98,7 @@ @for /f "delims=" %%i in ('where erl') do @( set erl=%%i ) -@set dir_cmd="%erl%" -noshell -eval "io:format(\"~s\", [filename:nativename(code:root_dir())])." -s init stop +@set dir_cmd="%erl%" -boot no_dot_erlang -noshell -eval "io:format(\"~s\", [filename:nativename(code:root_dir())])." -s init stop @for /f "delims=" %%i in ('%%dir_cmd%%') do @( set erl_root=%%i ) -- cgit v1.2.3