Escript: setting code path relative to script directory

荒凉一梦 提交于 2020-01-23 05:53:11

问题


When I try to set a relative code path in a escript with -pz like this

#!/usr/bin/env escript
%% -*- erlang -*-
%%! -pz ../dir-of-some-beams

The path is interpreted relative to the directory from where I run the escript from, which renders it useless for setting the path relative to the script location.

My current "workaround" is using a absolute path which is annoying since all this is part of a repository and I don't want it to be location dependent.

So how can I set the code path relative to the directory the escript is located in?


回答1:


Just found it out myself:

At the beginning of main add code like this:

true = code:add_pathz(filename:dirname(escript:script_name()) 
                       ++ "/../dir-of-some-beams"),

I recommend always testing for true whith these code functions, because its easy to type code:add_pathsz which wants a list of strings and always returns ok, even if you pass it just a string -- but it doesn't set the code path to the single directory (which is pretty annoying behaviour btw).



来源:https://stackoverflow.com/questions/6545416/escript-setting-code-path-relative-to-script-directory

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!