2011-07-01 31 views
7

當我嘗試設置在escript相對代碼路徑與-pz這樣Escript:相對碼路徑設置腳本目錄

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

的路徑是相對從那裏我運行escript解釋到目錄from,這使得它無法設置相對於腳本位置的路徑。

我目前的「解決方法」是使用絕對路徑,因爲所有這些都是存儲庫的一部分,我不希望它依賴於位置。

那麼如何設置相對於escript所在目錄的代碼路徑?

回答

16

剛剛發現它自己:

在主附加代碼開頭是這樣的:

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

我建議一直在測試的true蒙山這些code功能,因爲它易於輸入code:add_pathsz其希望一個字符串列表,並且總是返回ok,即使您只是傳遞一個字符串 - 但它不會將代碼路徑設置爲單個目錄(這非常惱人的行爲btw)。