File tree Expand file tree Collapse file tree 1 file changed +19
-4
lines changed Expand file tree Collapse file tree 1 file changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -158,13 +158,28 @@ defmodule Rustler do
158158 :code . purge ( __MODULE__ )
159159
160160 { otp_app , path } = @ load_from
161+ app_dir = Application . app_dir ( otp_app , path )
161162
162163 load_path =
163- otp_app
164- |> Application . app_dir ( path )
165- |> to_charlist ( )
164+ case System . get_env ( "ESCRIPT_NAME" ) do
165+ nil ->
166+ app_dir
167+
168+ escript_path ->
169+ if String . starts_with? ( app_dir , escript_path ) do
170+ tmp = System . tmp_dir! ( )
171+ :zip . extract ( escript_path ,
172+ file_list: [ Path . join ( otp_app |> Atom . to_string ( ) , path ) ] ,
173+ cwd: tmp
174+ )
175+
176+ Path . join ( tmp , path )
177+ else
178+ app_dir
179+ end
180+ end
166181
167- :erlang . load_nif ( load_path , _construct_load_data ( ) )
182+ :erlang . load_nif ( load_path |> to_charlist ( ) , _construct_load_data ( ) )
168183 end
169184 end
170185 end
You can’t perform that action at this time.
0 commit comments