[erlang-questions] "Automatic" recompile app from a console

Dmitry Klionsky <>
Sat Feb 2 09:39:15 CET 2013


We use modified version of sync https://github.com/ten0s/sync that 
supports releases, detects new files, and monitors changes in include 
files (at least it should, don't use this feature often) as far as the 
next requirements are met:
1. Make sync somehow available to your release. Include it into your 
release or put it in the erlang libs.
2. Build the project with debug_info.
3. Remove {debug_info, strip} from reltool.config
4. Add {excl_archive_filters, [".*"]} to reltool.config
5. Start sync:start() before making any changes.
6. Disable any growl notifications (optional)

We also edit files in emacs with flymake mode enabled using custom 
erlang syntax checker for *.erl, *.hrl, *.config files 
https://github.com/ten0s/syntaxerl

In general our workflow is:
1. Build the project with rebar
$ make
2. Start it in the console mode
$ make console
3. Start sync
 > sync:start().
4. Now start edit files. Whenever flymake says that the file is OK 
pretty soon sync will reload it. This workflow works fine until you need 
to make big changes like adding a child to a supervisor or make a new 
application. In this case go to point 1 and start over.

Hope this helps.


On 02/01/2013 12:08 AM, John Kemp wrote:
> Hi,
>
> I have been writing an application using rebar to build the app. I run 
> the server and open a console. I then change the source code and 
> apparently I need to leave the console, 'make rel' and restart the app 
> and the console.
>
> I'm sure there's a better way to do what I'm doing.
>
> One project I found is https://github.com/rustyio/sync, but this did 
> not (yet) work for me according to the instructions.
>
> How can I have my rebar (or just Erlang) app automatically recompile 
> ('make rel') when one of the source files changes, or run a command 
> from within the console to do this?
>
> Cheers,
>
> JohnK
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions


-- 
Best regards,
Dmitry Klionsky




More information about the erlang-questions mailing list