Escript:设置相对于脚本目录的代码路径

时间:2011-07-01 08:24:51

标签: erlang erlang-escript

当我尝试使用-pz这样的

在escript中设置相对代码路径时
#!/usr/bin/env escript
%% -*- erlang -*-
%%! -pz ../dir-of-some-beams

该路径是相对于我运行escript的目录解释的,这使得它无法用于设置相对于脚本位置的路径。

我目前的“解决方法”是使用一个令人烦恼的绝对路径,因为所有这些都是存储库的一部分,我不希望它依赖于位置。

那么如何设置相对于escript所在目录的代码路径?

1 个答案:

答案 0 :(得分:18)

我自己发现了:

在主要添加代码的开头,如下所示:

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

我建议始终测试这些true函数的code,因为它很容易键入code:add_pathsz,它需要一个字符串列表并始终返回ok,即使您传递它只是一个字符串 - 但它没有设置单个目录的代码路径(这是非常烦人的行为顺便说一句)。

相关问题