README.markdown

`reltool_util`
==============

Erlang reltool utility functionality application

`release` is an escript which provides the same basic functionality as
`rebar generate`, with additional error reporting coming from the reltool OTP
source code which rebar suppresses.

`scope` is an escript which moves your Erlang application dependencies
into their own "scope", so in Erlang, this means that it adds a prefix to
the application name and all the modules used by the application.  The general
sequence of operations you would want to use with the scope script are: 

  1. use the `-r` replace mode to modify internal source code, 
  2. modify the internal source code manually, if necessary, 
  3. run the `scope` script normally before compilation, 
  4. if it is necessary to return the source back to the original state, use the `-u` undo mode to remove the scoped source code and replace it with the original source code.  The `scope` script is meant to be part of a build process 
so the dependency modifications should be automatic (if the dependencies
are not convoluted).  

Example arguments for normal operation are: `-s cloudi_x_ -p cloudi -b _original -d directory1 -d directory2`. 
Dependencies that use `include_lib` require that the dependency directory name is 
changed to have the scope, but the script can still add/remove the scope to the
application and module names normally.

The `reltool_util` source code provides a simple way to start an Erlang
application manually, outside of a release (which is useful when regression
testing requires that an application be started, especially if the tests are
part of a build process like `rebar eunit` or `rebar ct`).