У меня есть простая команда Erlang, которую я хочу вызвать через erl -eval
(для компиляции шаблона erlydtl, как описано в предыдущая страница).
Когда я делаю это в интерактивном режиме из оболочки, все работает нормально, и команда немедленно завершается:
erl -pa ebin deps\erlydtl\ebin Eshell V5.9.3.1 (abort with ^G)
1> erlydtl:compile('templates/tictactoe.dtl',tictactoe_dtl,[{out_dir,'ebin'}]).
ok
Но когда я пытаюсь сделать это через erl -eval
(я хочу запустить это из .bat-файла):
erl -pa ebin deps\erlydtl\ebin -noshell -eval erlydtl:compile('templates/tictactoe.dtl',tictactoe_dtl,[{out_dir,'ebin'}])
Затем команда выполняет свою работу (шаблон компилируется), но не завершается, и мне нужно вручную завершить процесс оболочки с помощью ctrl+c (я работаю под Windows).
Я просто хочу, чтобы команда скомпилировала шаблон и вышла. В чем может быть проблема?
Обновление:
Одним из решений может быть добавление вызова exit() в конце команды, но тогда я получаю следующее:
erl -pa ebin deps\erlydtl\ebin -noshell -eval erlydtl:compile('templates/tictactoe.dtl',tictactoe_dtl,[{out_dir,'ebin'}]),exit(success).
{"init terminating in do_boot",success}
Crash dump was written to: erl_crash.dump
init terminating in do_boot (success)
Сообщение об ошибке очень раздражает, поэтому мне все еще не нравится это решение.
rebar compile skip_deps=true
у вас тоже медленный? - person Ward Bekker   schedule 02.06.2013skip_deps=true
и использовал его. Но для завершенияrebar compile skip_deps=true
моего очень маленького игрушечного проекта требуется около 5 секунд, даже если ничего не изменилось с момента предыдущей сборки! И так как это игрушечный проект, мне нужно очень часто выполнять циклы компиляции-запуска. Компиляция с использованиемerl -make
у меня занимает менее 1 секунды, и перекомпилируются только отредактированные файлы, поэтому я решил переключиться на него и написать небольшой скрипт для компиляции шаблонов erlydtl. А вот и мы :-). - person Piotr Sobczyk   schedule 02.06.2013