Sophie

Sophie

distrib > Fedora > 17 > i386 > media > updates > by-pkgid > 675c8c8167236dfcf8d66da674f931e8 > files > 1229

erlang-doc-R15B-03.3.fc17.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns:fn="http://www.w3.org/2005/02/xpath-functions">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css">
<title>Erlang -- reltool</title>
</head>
<body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container">
<script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript">
            <!--
              function getWinHeight() {
                var myHeight = 0;
                if( typeof( window.innerHeight ) == 'number' ) {
                  //Non-IE
                  myHeight = window.innerHeight;
                } else if( document.documentElement && ( document.documentElement.clientWidth ||
                                                         document.documentElement.clientHeight ) ) {
                  //IE 6+ in 'standards compliant mode'
                  myHeight = document.documentElement.clientHeight;
                } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                  //IE 4 compatible
                  myHeight = document.body.clientHeight;
                }
                return myHeight;
              }

              function setscrollpos() {
                var objf=document.getElementById('loadscrollpos');
                 document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2;
              }

              function addEvent(obj, evType, fn){
                if (obj.addEventListener){
                obj.addEventListener(evType, fn, true);
                return true;
              } else if (obj.attachEvent){
                var r = obj.attachEvent("on"+evType, fn);
                return r;
              } else {
                return false;
              }
             }

             addEvent(window, 'load', setscrollpos);

             //--></script><div id="leftnav"><div class="innertube">
<img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/reltool-0.6.1.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>Reltool</strong><br><strong>Reference Manual</strong><br><small>Version 0.6.1</small></p>
<br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p>
<ul class="flipMenu"><li id="loadscrollpos" title="reltool " expanded="true">reltool<ul>
<li><a href="reltool.html">
                  Top of manual page
                </a></li>
<li title="create_target-2"><a href="reltool.html#create_target-2">create_target/2</a></li>
<li title="eval_target_spec-3"><a href="reltool.html#eval_target_spec-3">eval_target_spec/3</a></li>
<li title="get_config-1"><a href="reltool.html#get_config-1">get_config/1</a></li>
<li title="get_config-3"><a href="reltool.html#get_config-3">get_config/3</a></li>
<li title="get_rel-2"><a href="reltool.html#get_rel-2">get_rel/2</a></li>
<li title="get_script-2"><a href="reltool.html#get_script-2">get_script/2</a></li>
<li title="get_status-1"><a href="reltool.html#get_status-1">get_status/1</a></li>
<li title="get_server-1"><a href="reltool.html#get_server-1">get_server/1</a></li>
<li title="get_target_spec-1"><a href="reltool.html#get_target_spec-1">get_target_spec/1</a></li>
<li title="install-2"><a href="reltool.html#install-2">install/2</a></li>
<li title="start-0"><a href="reltool.html#start-0">start/0</a></li>
<li title="start-1"><a href="reltool.html#start-1">start/1</a></li>
<li title="start_link-1"><a href="reltool.html#start_link-1">start_link/1</a></li>
<li title="start_server-1"><a href="reltool.html#start_server-1">start_server/1</a></li>
<li title="stop-1"><a href="reltool.html#stop-1">stop/1</a></li>
</ul>
</li></ul>
</div></div>
<div id="content">
<div class="innertube">
<!-- refpage --><center><h1>reltool</h1></center>
  
  <h3>MODULE</h3>
<div class="REFBODY">reltool</div>
  <h3>MODULE SUMMARY</h3>
<div class="REFBODY">Main API of the Reltool application</div>
  <h3>DESCRIPTION</h3>
<div class="REFBODY"><p>
    <p>This is an interface module for the Reltool application.</p>

    <p><strong>Reltool</strong> is a release management tool. It analyses a
    given Erlang/OTP installation and determines various dependencies
    between applications. The <span class="code">graphical</span> frontend depicts the
    dependencies and enables interactive customization of a target
    system. The backend provides a <span class="code">batch</span> interface for
    generation of customized target systems.</p>

    <p>The tool uses an installed Erlang/OTP system as input.
    <span class="code">root_dir</span> is the root directory of the analysed system and
    it defaults to the system executing <span class="code">reltool</span>. Applications
    may also be located outside <span class="code">root_dir</span>. <span class="code">lib_dirs</span>
    defines library directories where additional applications
    may reside and it defaults to the directories
    listed by the operating system environment variable
    <span class="code">ERL_LIBS</span>. See the module <span class="code">code</span> for more info.
    Finally single modules and entire applications may be read from
    Escripts.</p>

    <p>Some configuration parameters control the behavior of Reltool
    on system (<span class="code">sys</span>) level. Others provide control on
    application (<span class="code">app</span>) level and yet others are on module
    (<span class="code">mod</span>) level. Module level parameters override application
    level parameters and application level parameters override system
    level parameters. Escript <span class="code">escript</span> level parameters
    override system level parameters.</p>

    <p>The following top level <span class="code">options</span> are supported:</p>

    <dl>

      <dt><strong><span class="code">config</span></strong></dt>
      <dd>
        <p>This is the main option and it controls the configuration
           of <span class="code">reltool</span>.  It can either be a <span class="code">sys</span> tuple or
           a name of a <span class="code">file</span> containing a sys tuple.</p>
      </dd>

      <dt><strong><span class="code">trap_exit</span></strong></dt>
      <dd>
        <p>This option controls the error handling behavior of
           <span class="code">reltool</span>.  By default the window processes traps
           exit, but this behavior can altered by setting
           <span class="code">trap_exit</span> to <span class="code">false</span>.</p>
      </dd>

      <dt><strong><span class="code">wx_debug</span></strong></dt>
      <dd>
        <p>This option controls the debug level of <span class="code">wx</span>. As its
           name indicates it is only useful for debugging. See
           <span class="code">wx:debug/1</span> for more info.</p>
      </dd>

    </dl>

    <p>Besides the already mentioned source parameters <span class="code">root_dir</span>
    and <span class="code">lib_dirs</span>, the following system (<span class="code">sys</span>) level
    options are supported:</p>

    <dl>

      <dt><strong><span class="code">erts</span></strong></dt>
      <dd>
        <p>Erts specific configuration. See application level options
        below.</p>
      </dd>

      <dt><strong><span class="code">escript</span></strong></dt>
      <dd>
        <p>Escript specific configuration. An escript has a mandatory
        file name and escript level options that are described
        below.</p>
      </dd>

      <dt><strong><span class="code">app</span></strong></dt>
      <dd>
        <p>Application specific configuration. An application has a
        mandatory name and application level options that are
        described below.</p>
      </dd>

      <dt><strong><span class="code">mod_cond</span></strong></dt>
      <dd>
        <p>This parameter controls the module inclusion policy. It
        defaults to <span class="code">all</span> which means that if an application is
        included (either explicitly or implicitly) all modules in that
        application will be included. This implies that both modules
        that exist in the <span class="code">ebin</span> directory of the application,
        as well as modules that are named in the <span class="code">app</span> file will
        be included. If the parameter is set to <span class="code">ebin</span>, both
        modules in the <span class="code">ebin</span> directory and derived modules are
        included. If the parameter is set to <span class="code">app</span>, both modules
        in the <span class="code">app</span> file and derived modules are included.
        <span class="code">derived</span> means that only modules that are used by other
        included modules are included. The <span class="code">mod_cond</span> setting on
        system level is used as default for all applications.</p>
      </dd>

      <dt><strong><span class="code">incl_cond</span></strong></dt>
      <dd>
        <p>This parameter controls the application and escript
        inclusion policy. It defaults to <span class="code">derived</span> which means
        that the applications that do not have any explicit
        <span class="code">incl_cond</span> setting, will only be included if any other
        (explicitly or implicitly included) application uses it. The
        value <span class="code">include</span> implies that all applications and
        escripts that do not have any explicit <span class="code">incl_cond</span>
        setting will be included. <span class="code">exclude</span> implies that all
        applications and escripts that do not have any explicit
        <span class="code">incl_cond</span> setting will be excluded.</p>
      </dd>

      <dt><strong><span class="code">boot_rel</span></strong></dt>
      <dd>
        <p>A target system may have several releases but the one given
        as <span class="code">boot_rel</span> will be used as default when the system is
        booting up.</p>
      </dd>

      <dt><strong><span class="code">rel</span></strong></dt>
      <dd>
        <p>Release specific configuration. Each release maps to a
        <span class="code">rel</span>, <span class="code">script</span> and <span class="code">boot</span> file. See the
        module <span class="code">systools</span> for more info about the details. Each
        release has a name, a version and a set of applications with a
        few release specific parameters such as type and included
        applications.</p>
      </dd>

      <dt><strong><span class="code">relocatable</span></strong></dt>
      <dd>
        <p>This parameter controls whether the <span class="code">erl</span> executable
        in the target system should automatically determine where it
        is installed or if it should use a hardcoded path to the
        installation. In the latter case the target system must be
        installed with <span class="code">reltool:install/2</span> before it can be
        used. If the system is relocatable, the file tree containing
        the target system can be moved to another location without
        re-installation. The default is <span class="code">true</span>.</p>
      </dd>

      <dt><strong><span class="code">profile</span></strong></dt>
      <dd>
        <p>The creation of the specification for a target system is
        performed in two steps. In the first step a complete
        specification is generated. It will likely contain much more
        files than you are interested in in your customized target
        system. In the second step the specification will be filtered
        according to your filters. There you have the ability to
        specify filters per application as well as system wide
        filters. You can also select a <span class="code">profile</span> for your
        system. Depending on the <span class="code">profile</span>, different default
        filters will be used. There are three different profiles to
        choose from: <span class="code">development</span>, <span class="code">embedded</span> and
        <span class="code">standalone</span>. <span class="code">development</span> is default. The
        parameters that are affected by the <span class="code">profile</span> are:
        <span class="code">incl_sys_filters</span>, <span class="code">excl_sys_filters</span>,
        <span class="code">incl_app_filters</span> and <span class="code">excl_app_filters</span>.</p>
      </dd>

      <dt><strong><span class="code">app_file</span></strong></dt>
      <dd>
        <p>This parameter controls the default handling of the
        <span class="code">app</span> files when a target system is generated. It
        defaults to <span class="code">keep</span> which means that <span class="code">app</span> files are
        copied to the target system and their contents are kept as
        they are. <span class="code">strip</span> means that a new <span class="code">app</span> file is
        generated from the contents of the original <span class="code">app</span> file
        where the non included modules are removed from the
        file. <span class="code">all</span> does also imply that a new <span class="code">app</span> file is
        generated from the contents of the original <span class="code">app</span> file,
        with the difference that all included modules are added to the
        file. If the application does not have any <span class="code">app</span> file a
        file will be created for <span class="code">all</span> but not for <span class="code">keep</span>
        and <span class="code">strip</span>.</p>
      </dd>

      <dt><strong><span class="code">debug_info</span></strong></dt>
      <dd>
        <p>The <span class="code">debug_info</span> parameter controls whether the debug
        information in the beam file should be kept (<span class="code">keep</span>) or
        stripped <span class="code">strip</span> when the file is copied to the target
        system.</p>
      </dd>

      <dt><strong><span class="code">excl_lib</span></strong></dt>
      <dd>
	<div class="warning">
<div class="label">Warning</div>
<div class="content"><p><p>This option is experimental.</p></p></div>
</div>
        <p>If the <span class="code">excl_lib</span> option is set to <span class="code">otp_root</span>
        then reltool will not copy anything from the Erlang/OTP
        installation ($OTP_ROOT) into the target structure. The goal
        is to create a "slim" release which can be used together with
        an existing Erlang/OTP installation. The target structure will
        therefore only contain a <span class="code">lib</span> directory with the
        applications that were found outside of $OTP_ROOT (typically
        your own applications), and a <span class="code">releases</span> directory with
        the generated <span class="code">.rel,</span> <span class="code">.script</span> and <span class="code">.boot</span>
        files.</p>

	<p>When starting this release, three things must be specified:</p>
	<dl>
	  <dt><strong><strong>Which <span class="code">releases</span> directory to use</strong></strong></dt>
	  <dd>Tell the release handler to use the <span class="code">releases</span>
	  directory in our target structure instead of
	  <span class="code">$OTP_ROOT/releases</span>. This is done by setting the SASL
	  environment variable <span class="code">releases_dir</span>, either from the
	  command line (<span class="code">-sasl releases_dir
	  &lt;target-dir&gt;/releases</span>) or in
	  <span class="code">sys.config</span>.</dd>

	  <dt><strong><strong>Which boot file to use</strong></strong></dt>
	  <dd>The default boot file is <span class="code">$OTP_ROOT/bin/start</span>,
	  but in this case we need to specify a boot file from our
	  target structure, typically
	  <span class="code">&lt;target-dir&gt;/releases/&lt;vsn&gt;/&lt;RelName&gt;</span>. This
	  is done with the <span class="code">-boot</span> command line option to
	  <span class="code">erl</span>
</dd>

	  <dt><strong><strong>The location of our applications</strong></strong></dt>
	  <dd>The generated .script (and .boot) file uses the
	  environment variable <span class="code">$RELTOOL_EXT_LIB</span> as prefix for
	  the paths to all applications. The <span class="code">-boot_var</span> option
	  to <span class="code">erl</span> can be used for specifying the value of this
	  variable, typically <span class="code">-boot_var RELTOOL_EXT_LIB
	  &lt;target-dir&gt;/lib</span>.</dd>
	</dl>

	<p>Example:</p>
	<p><div class="example"><pre>erl -sasl releases_dir \"mytarget/releases\" -boot mytarget/releases/1.0/myrel -boot_var RELTOOL_EXT_LIB mytarget/lib</pre></div></p>
      </dd>

      <dt><strong><span class="code">incl_sys_filters</span></strong></dt>
      <dd>
        <p>This parameter normally contains a list of regular
        expressions that controls which files in the system
        should be included. Each file in the target system must match
        at least one of the listed regular expressions in order to be
        included. Further the files may not match any filter in
        <span class="code">excl_sys_filters</span> in order to be included. Which
        application files should be included is controlled with
        the parameters <span class="code">incl_app_filters</span> and
        <span class="code">excl_app_filters</span>. This parameter defaults to
        <span class="code">[".*"]</span>.</p>
      </dd>

      <dt><strong><span class="code">excl_sys_filters</span></strong></dt>
      <dd>
        <p>This parameter normally contains a list of regular
        expressions that controls which files in the system should
        not be included in the target system. In order to be
        included, a file must match some filter in
        <span class="code">incl_sys_filters</span> but not any filter in
        <span class="code">excl_sys_filters</span>. This parameter defaults to
        <span class="code">[]</span>.</p>
      </dd>
      <dt><strong><span class="code">incl_app_filters</span></strong></dt>
      <dd>
        <p>This parameter normally contains a list of regular
        expressions that controls which application specific files
        that should be included. Each file in the application must
        match at least one of the listed regular expressions in order
        to be included.  Further the files may not match any filter in
        <span class="code">excl_app_filters</span> in order to be included. This
        parameter defaults to <span class="code">[".*"]</span>.</p>
      </dd>

      <dt><strong><span class="code">excl_app_filters</span></strong></dt>
      <dd>
        <p>This parameter normally contains a list of regular
        expressions that controls which application specific files
        should not be included in the target system. In order to
        be included, a file must match some filter in
        <span class="code">incl_app_filters</span> but not any filter in
        <span class="code">excl_app_filters</span>. This parameter defaults to
        <span class="code">[]</span>.</p>
      </dd>

      <dt><strong><span class="code">incl_archive_filters</span></strong></dt>
      <dd>
        <p>This parameter normally contains a list of regular
        expressions that controls which top level directories in an
        application should be included in an archive file (as
        opposed to being included as a regular directory outside the
        archive). Each top directory in the application must match at
        least one of the listed regular expressions in order to be
        included. Further the files may not match any filter in
        <span class="code">excl_app_filters</span> in order to be included. This
        parameter defaults to <span class="code">[".*"]</span>.</p>
      </dd>

       <dt><strong><span class="code">excl_archive_filters</span></strong></dt>
      <dd>
        <p>This parameter normally contains a list of regular
        expressions that controls which top level directories in an
        application should not be included in an archive file. In
        order to be included in the application archive, a top
        directory must match some filter in <span class="code">incl_archive_filters</span>
        but not any filter in <span class="code">excl_archive_filters</span>. This
        parameter defaults to <span class="code">["^include$","^priv$"]</span>.</p>
      </dd>

      <dt><strong><span class="code">archive_opts</span></strong></dt>
      <dd>
        <p>This parameter contains a list of options that are given to
        <span class="code">zip:create/3</span> when application specific files are
        packaged into an archive. Only a subset of the options are
        supported. The most useful options in this context are the ones
        that control which types of files should be compressed. This
        parameter defaults to <span class="code">[]</span>.</p>
      </dd>

    </dl>

    <p>On application (<span class="code">escript</span>) level, the following options are
    supported:</p>

   <dl>
      <dt><strong><span class="code">incl_cond</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>
    </dl>

    <p>On application (<span class="code">app</span>) level, the following options are
       supported:</p>

   <dl>
      <dt><strong><span class="code">vsn</span></strong></dt>
      <dd>
        <p>The version of the application. In an installed system there may
        exist several versions of an application. The <span class="code">vsn</span> parameter
        controls which version of the application will be chosen.</p>
	<p>This parameter is mutual exclusive with <span class="code">lib_dir</span>. If
	<span class="code">vsn</span> and <span class="code">lib_dir</span> are both omitted, the latest version
	will be chosen.</p>
      </dd>
      <dt><strong><span class="code">lib_dir</span></strong></dt>
      <dd>
	<p>The directory to read the application from. This parameter
	can be used to point out a specific location to fetch the
	application from. This is useful for instance if the parent
	directory for some reason is no good as a library directory on
	system level.</p>
	<p>This parameter is mutual exclusive with <span class="code">vsn</span>. If
	<span class="code">vsn</span> and <span class="code">lib_dir</span> are both omitted, the latest version
	will be chosen.</p>
      </dd>
      <dt><strong><span class="code">mod</span></strong></dt>
      <dd>
        <p>Module specific configuration. A module has a mandatory
        name and module level options that are described below.</p>
      </dd>
      <dt><strong><span class="code">mod_cond</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>
      <dt><strong><span class="code">incl_cond</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>
      <dt><strong><span class="code">app_file</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>
      <dt><strong><span class="code">debug_info</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>
      <dt><strong><span class="code">incl_app_filters</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>
      <dt><strong><span class="code">excl_app_filters</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>

      <dt><strong><span class="code">incl_archive_filters</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>

       <dt><strong><span class="code">excl_archive_filters</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>

     <dt><strong><span class="code">archive_opts</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with the
        same name on system level.</p>
      </dd>
    </dl>

     <p>On module (<span class="code">mod</span>) level, the following options are
       supported:</p>

   <dl>
      <dt><strong><span class="code">incl_cond</span></strong></dt>
      <dd>
        <p>This parameter controls whether the module is included or not. By
        default the <span class="code">mod_incl</span> parameter on application and system level
        will be used to control whether the module is included or not. The
        value of <span class="code">incl_cond</span> overrides the module inclusion policy.
        <span class="code">include</span> implies that the module is included, while
        <span class="code">exclude</span> implies that the module is not included.
        <span class="code">derived</span> implies that the module is included if it is used
        by any other included module.</p>
      </dd>
      <dt><strong><span class="code">debug_info</span></strong></dt>
      <dd>
        <p>The value of this parameter overrides the parameter with
        the same name on application level.</p>
      </dd>
    </dl>

  </p></div>

  <h3><a name="id56819">DATA TYPES</a></h3>
<div class="REFBODY">
    
    <div class="example"><pre>
options()           = [option()]
option()            = {config, config() | file()}
                    | {trap_exit, bool()}
                    | {wx_debug, term()} 
config()            = {sys, [sys()]}
sys()               = {root_dir, root_dir()}
                    | {lib_dirs, [lib_dir()]}
                    | {profile, profile()}
                    | {erts, app()}
                    | {escript, escript_file(), [escript()]}
                    | {app, app_name(), [app()]}
                    | {mod_cond, mod_cond()} 
                    | {incl_cond, incl_cond()}
                    | {boot_rel, boot_rel()}
                    | {rel, rel_name(), rel_vsn(), [rel_app()]}
                    | {relocatable, relocatable()}
                    | {app_file, app_file()}
                    | {debug_info, debug_info()}
                    | {incl_sys_filters, incl_sys_filters()}
                    | {excl_sys_filters, excl_sys_filters()}
                    | {incl_app_filters, incl_app_filters()}
                    | {excl_app_filters, excl_app_filters()}
                    | {incl_archive_filters, incl_archive_filters()}
                    | {excl_archive_filters, excl_archive_filters()}
                    | {archive_opts, [archive_opt()]}
app()               = {vsn, app_vsn()}
                    | {lib_dir, lib_dir()}
                    | {mod, mod_name(), [mod()]}
                    | {mod_cond, mod_cond()}
                    | {incl_cond, incl_cond()}
                    | {debug_info, debug_info()}
                    | {app_file, app_file()}
		    | {excl_lib, excl_lib()}
                    | {incl_sys_filters, incl_sys_filters()}
                    | {excl_sys_filters, excl_sys_filters()}
                    | {incl_app_filters, incl_app_filters()}
                    | {excl_app_filters, excl_app_filters()}
                    | {incl_archive_filters, incl_archive_filters()}
                    | {excl_archive_filters, excl_archive_filters()}
                    | {archive_opts, [archive_opt()]}
mod()               = {incl_cond, incl_cond()}
                    | {debug_info, debug_info()}
rel_app()           = app_name()
                    | {app_name(), app_type()} 
                    | {app_name(), [incl_app()]}
                    | {app_name(), app_type(), [incl_app()]}
app_name()          = atom()
app_type()          = permanent | transient | temporary | load | none
app_vsn()           = string()
archive_opt         = zip_create_opt()
boot_rel()          = rel_name()
app_file()          = keep | strip | all
debug_info()        = keep | strip
dir()               = string()
escript()           = {incl_cond, incl_cond()}
escript_file()      = file()
excl_app_filters()  = regexps()
excl_archive_filters() = regexps()
excl_lib()          = otp_root
excl_sys_filters()  = regexps()
file()              = string()
incl_app()          = app_name()
incl_app_filters()  = regexps()
incl_archive_filters() = regexps()
incl_cond()         = include | exclude | derived
incl_sys_filters()  = regexps()
lib_dir()           = dir()
mod_cond()          = all | app | ebin | derived | none
mod_name()          = atom()
profile()           = development | embedded | standalone
re_regexp()         = string()
reason()            = string()
regexps()           = [re_regexp()]
                    | {add, [re_regexp()]}
                    | {del, [re_regexp()]}
rel_file()          = term()
rel_name()          = string()
rel_vsn()           = string()
relocatable         = boolean()
root_dir()          = dir()
script_file()       = term()
server()            = server_pid() | options()
server_pid()        = pid()
target_dir()        = file()
window_pid()        = pid()
base_dir()          = dir()
base_file()         = file()
top_dir()           = file()
top_file()          = file()
target_spec()       = [target_spec()]
                    | {create_dir, base_dir(), [target_spec()]}
                    | {create_dir, base_dir(), top_dir(), [target_spec()]}
                    | {archive, base_file(), [archive_opt()], [target_spec()]}
                    | {copy_file, base_file()}
                    | {copy_file, base_file(), top_file()}
                    | {write_file, base_file(), iolist()}
                    | {strip_beam_file, base_file()}</pre></div>

    <a name="start"></a>
  </div>

  <h3>EXPORTS</h3>
    <p><a name="create_target-2"><span class="bold_code">create_target(Server, TargetDir) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Server     = server()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">TargetDir  = target_dir()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason     = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Create a target system. Gives the same result as
      <span class="code">{ok,TargetSpec}=reltool:get_target_spec(Server)</span> and
      <span class="code">reltool:eval_target_spec(TargetSpec,RootDir,TargetDir)</span>.</p></p></div>
    
    <p><a name="eval_target_spec-3"><span class="bold_code">eval_target_spec(TargetSpec, RootDir, TargetDir) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">TargetSpec = target_spec()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">RootDir    = root_dir()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">TargetDir  = target_dir()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason     = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Create the actual target system from a specification
      generated by <span class="code">reltool:get_target_spec/1</span>. The creation of
      the specification for a target system is performed in two
      steps. In the first step a complete specification will be
      generated. It will likely contain much more files than you are
      interested in in your target system. In the second step the
      specification will be filtered according to your filters. There
      you have the ability to specify filters per application as well
      as system wide filters. You can also select a <span class="code">profile</span> for
      your system. Depending on the <span class="code">profile</span>, different default
      filters will be used.</p>

      <p>The top directories <span class="code">bin</span>, <span class="code">releases</span> and
      <span class="code">lib</span> are treated differently from other files. All other
      files are by default copied to the target system. The
      <span class="code">releases</span> directory contains generated <span class="code">rel</span>,
      <span class="code">script</span>, and <span class="code">boot</span> files. The <span class="code">lib</span> directory
      contains the applications. Which applications are included
      and if they should be customized (archived, stripped from debug
      info etc.) is specified with various configuration
      parameters. The files in the <span class="code">bin</span> directory are copied
      from the <span class="code">erts-vsn/bin</span> directory, but only those files
      that were originally included in the <span class="code">bin</span> directory of the
      source system.</p>

      <p>If the configuration parameter <span class="code">relocatable</span> was set to
      <span class="code">true</span> there is no need to install the target system with
      <span class="code">reltool:install/2</span> before it can be started. In that case
      the file tree containing the target system can be moved without
      re-installation.</p>

      <p>In most cases, the <span class="code">RootDir</span> parameter should be set to
      the same as the <span class="code">root_dir</span> configuration parameter used in
      the call to <span class="code">reltool:get_target_spec/1</span>
      (or <span class="code">code:root_dir()</span> if the configuration parameter is not
      set). In some cases it might be useful to evaluate the same
      target specification towards different root directories. This
      should, however, be used with great care as it requires
      equivalent file structures under all roots.</p>
      </p></div>

    <p><a name="get_config-1"><span class="bold_code">get_config(Server) -&gt; {ok, Config} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Server  = server()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Config  = config()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason  = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Get reltool configuration. Shorthand for
      <span class="code">reltool:get_config(Server,false,false)</span>.</p></p></div>

    <p><a name="get_config-3"><span class="bold_code">get_config(Server, InclDefaults, InclDerived) -&gt; {ok, Config} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Server        = server()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">InclDefaults  = incl_defaults()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">InclDerived   = incl_derived()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Config        = config()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason        = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Get reltool configuration. Normally, only the explicit
      configuration parameters with values that differ from their
      defaults are interesting. But the builtin default values can be
      returned by setting <span class="code">InclDefaults</span> to <span class="code">true</span>. The
      derived configuration can be returned by setting
      <span class="code">InclDerived</span> to <span class="code">true</span>.</p></p></div>

    <p><a name="get_rel-2"><span class="bold_code">get_rel(Server, Relname) -&gt; {ok, RelFile} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Server  = server()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">RelName = rel_name()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">RelFile = rel_file()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason  = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Get contents of a release file. See <span class="code">rel(4)</span> for more
      details.</p></p></div>

    <p><a name="get_script-2"><span class="bold_code">get_script(Server, Relname) -&gt; {ok, ScriptFile | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Server     = server()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">RelName    = rel_name()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">ScriptFile = script_file()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason     = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Get contents of a boot script file. See <span class="code">script(4)</span> for
      more details.</p></p></div>

    <p><a name="get_status-1"><span class="bold_code">get_status(Server) -&gt; {ok, [Warning]} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Server  = server()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Warning = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason  = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Get status about the configuration</p></p></div>

    <p><a name="get_server-1"><span class="bold_code">get_server(WindowPid) -&gt; {ok, ServerPid} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">WindowPid   = window_pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">ServerPid   = server_pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason      = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Return the process identifier of the server process.</p></p></div>

    <p><a name="get_target_spec-1"><span class="bold_code">get_target_spec(Server) -&gt; {ok, TargetSpec} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Server     = server()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">TargetSpec = target_spec()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason     = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Return a specification of the target system. The actual
      target system can be created with
      <span class="code">reltool:eval_target_spec/3</span>.</p>
      </p></div>

    <p><a name="install-2"><span class="bold_code">install(RelName, TargetDir) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">RelName    = rel_name()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">TargetDir  = target_dir()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason     = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Install a created target system</p></p></div>

    <p><a name="start-0"><span class="bold_code">start() -&gt; {ok, WindowPid} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">WindowPid   = window_pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason      = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Start a main window process with default options</p></p></div>
  
    <p><a name="start-1"><span class="bold_code">start(Options) -&gt; {ok, WindowPid} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Options     = options()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">WindowPid   = window_pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason      = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Start a main window process with options</p></p></div>
  
    <p><a name="start_link-1"><span class="bold_code">start_link(Options) -&gt; {ok, WindowPid} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Options     = options()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">WindowPid   = window_pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason      = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Start a main window process with options. The process is linked.</p></p></div>
  
    <p><a name="start_server-1"><span class="bold_code">start_server(Options) -&gt; {ok, ServerPid} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Options     = options()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">ServerPid   = server_pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason      = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Start a server process with options. The server process
      identity can be given as an argument to several other functions in the
      API.</p></p></div>

    <p><a name="stop-1"><span class="bold_code">stop(Pid) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Pid     = server_pid() | window_pid()()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason  = reason()</span><br>
</div>
      </div>
<div class="REFBODY"><p><p>Stop a server or window process</p></p></div>
  
  
</div>
<div class="footer">
<hr>
<p>Copyright © 2009-2012 Ericsson AB, All Rights Reserved</p>
</div>
</div>
</div></body>
</html>