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
158
158
:code . purge ( __MODULE__ )
159
159
160
160
{ otp_app , path } = @ load_from
161
+ app_dir = Application . app_dir ( otp_app , path )
161
162
162
163
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
166
181
167
- :erlang . load_nif ( load_path , _construct_load_data ( ) )
182
+ :erlang . load_nif ( load_path |> to_charlist ( ) , _construct_load_data ( ) )
168
183
end
169
184
end
170
185
end
You can’t perform that action at this time.
0 commit comments