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, даже если вы передаете ему просто строку - но он не устанавливает путь к коду к одному каталогу (что, кстати, довольно раздражает).

Другие вопросы по тегам