Escript: установка пути кода относительно директории скрипта
Когда я пытаюсь установить относительный путь кода в escript с -pz, как это
#!/usr/bin/env escript
%% -*- erlang -*-
%%! -pz ../dir-of-some-beams
Путь интерпретируется относительно каталога, из которого я запускаю скрипт, что делает его бесполезным для установки пути относительно местоположения скрипта.
Мой текущий "обходной путь" использует абсолютный путь, который раздражает, поскольку все это является частью репозитория, и я не хочу, чтобы он зависел от местоположения.
Итак, как я могу установить путь к коду относительно каталога, в котором находится скрипт?
1 ответ
Просто сам узнал
В начале основной добавить код, как это:
true = code:add_pathz(filename:dirname(escript:script_name())
++ "/../dir-of-some-beams"),
Я рекомендую всегда тестировать на true
с этими code
функции, потому что его легко набрать code:add_pathsz
который хочет список строк и всегда возвращает ok
, даже если вы передаете ему просто строку - но он не устанавливает путь к коду к одному каталогу (что, кстати, довольно раздражает).