новости сообщество форум вики полезно

erlctl 0.1

02/03/2010 15:44

Одна из основных задач при использовании какого-либо сервиса — это возможность контролировать этот самый сервис.

Крупные проекты решили эту задачу каждый сам для себя (см. ejabberdctl, rabbitmqctl, riak-admin). Проблема в таких решениях очевидна — они все «заточены» под один какой-то конкретно проект.

Jason Vantuyi решил, что пора реализовать такую возможность в виде библиотеки. И реализовал ее в библиотеке ErlCtl.

Предположим, ваша программа называется awesome. Создайте symlink на исполняемый файл erlctl под названием, скажем, awesomectl. И создайте в вашем проекте модуль под таким же названием, awesomectl.erl. Этот модуль должен кспортировать функции («команды»), принимающие два параметра: контекст, в которой функция вызывается, и список аргументов.

Например, создадим команду, которая будет выводить версию нашей программы:

version(always,[]) -> {ok,"Version: ~p",[0.1]}.

Эта функция вернет success и версию нашей программы:

sh> awesomectl version
Version: 0.1

Библиотека предлагает возможность указать различные контексты для выполнения команд (not_running, started, running и т.п.). Подробнее о них и о том, как пользоваться библиотекой, можно узнать в полноценном приложении, использующем эту библиотеку (полное описание команд для этого приложения можно найти здесь).


 
 
 
 

так же

Ссылки

twitter