Escript: установка пути кода относительно директории скрипта - PullRequest
7 голосов
/ 01 июля 2011

Когда я пытаюсь установить относительный путь кода в сценарии с -pz следующим образом:

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

Путь интерпретируется относительно каталога, из которого я запускаю сценарий, что делает его бесполезным дляустановка пути относительно местоположения скрипта.

Мой текущий «обходной путь» использует абсолютный путь, который раздражает, поскольку все это является частью репозитория, и я не хочу, чтобы он зависел от местоположения.

Так, как я могу установить путь к коду относительно каталога, в котором находится скрипт?

1 Ответ

18 голосов
/ 01 июля 2011

Только что сам узнал:

В начале основного кода добавить вот так:

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

Я рекомендую всегда проверять true с этими code функциями, потому чтоего просто набрать code:add_pathsz, который хочет получить список строк и всегда возвращает ok, даже если вы передаете ему просто строку - но он не устанавливает путь к коду к одному каталогу (что довольно раздражает, кстати).

...