Знайомство з n2o v4.4 [2]

Продовжуємо знайомство з n2o - erlang-фреймворком на вебсокетах.
Розглядаємо команди mad та otp.mk

Зараз ми розглянемо що робить команда

./mad deps compile plan repl

доречі, якщо в консолі у відповідь на цю команду пише "команду не знайдено ..." -
тицяємо наступне

sudo chmod a+x mad

повертаємось до mad -

deps — отримати залежності по rebar.config
compile — компіляція
plan — створити план запуску в .applist
repl — запустити проект

mad на github ( https://github.com/synrc/mad )

далі відредагуємо my_n2o_app/rebar.config -
додамо залежності, котрі нам незабаром знадобляться -
jsone (ймовірно нам знадобиться працювати з json )
epgsql (драйвер для роботи з postgresql )

(комміт https://github.com/221V/my_n2o_app/commit/952a56d20023a791b34031668f78b1b008d248fc )

(на всякий випадок) завантажимо всі deps-файли в репозиторій
(комміт https://github.com/221V/my_n2o_app/commit/ef069b1413e200025a101baf66753f0a68b01d45 )

напевно, нам знадобиться запуск нашого додатку в якості linux-demon, тобто на фоні, без створення ерланг-релізу
це ми можемо зробити за допомогою otp.mk ( https://github.com/synrc/otp.mk )
додамо до нашого репозиторію необхідні файли

(комміт https://github.com/221V/my_n2o_app/commit/b38bf2c5e72b03adcc30ff49375f02251dcb7162 )

Як запустити?

примітка - перед запуском ймовірно потрібно встановити

$ sudo apt-get install make

Запускаємо -

make start
make attach
CTRL + D

Як прибити запущений таким способом n2o-додаток?

приєднуємось до ерланг-ноди

make attach

далі пишемо

q().

це все :)

або ж, для нелінивих, пошук по порту -

sudo netstat -tpln | grep "tcp"
sudo kill ${pid}

upd. а так виглядає команда, якою запускається n2o додаток з otp.mk:

ERL_LIBS="apps:deps" erl +pc unicode -args_file vm.args -config sys.config -eval '[application:start(A) || A <- [public_key, kernel, stdlib, mnesia, fs, ranch, crypto, pooler, compiler, syntax_tools, inets, cowlib, ssl, cowboy, n2o, active, epgsql, epgsql_pool, erlydtl, gproc, herd, jsone, mad, nitro, rest, sh, ublog]]'

Продовження

Посилання

https://github.com/synrc/mad
https://github.com/synrc/otp.mk