% Licensed under the Apache License, Version 2.0 (the "License"); you may not
% use this file except in compliance with the License. You may obtain a copy of
% the License at
%
%   http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
% License for the specific language governing permissions and limitations under
% the License.

{sys, [
    {lib_dirs, ["../src"]},
    {rel, "couchdb", "3.0.0", [
        %% stdlib
        asn1,
        compiler,
        crypto,
        inets,
        kernel,
        os_mon,
        runtime_tools,
        sasl,
        ssl,
        stdlib,
        syntax_tools,
        xmerl,
        %% couchdb
        b64url,
        bear,
        chttpd,
        config,
        couch,
        couch_epi,
        couch_index,
        couch_log,
        couch_mrview,
        couch_plugins,
        couch_replicator,
        couch_stats,
        couch_event,
        couch_peruser,
        ddoc_cache,
        dreyfus,
        ets_lru,
        fabric,
        folsom,
        global_changes,
        hyper,
        ibrowse,
        ioq,
        jiffy,
        ken,
        khash,
        mango,
        mem3,
        mochiweb,
        rexi,
        setup,
        smoosh,
        snappy
    ]},
    {rel, "start_clean", "", [kernel, stdlib]},
    {boot_rel, "couchdb"},
    {profile, embedded},
    {excl_sys_filters, ["^bin/.*", "^erts.*/bin/(dialyzer|typer)"]},
    {excl_archive_filters, [".*"]},
    {incl_cond, exclude},

    %% stdlib
    {app, asn1, [{incl_cond, include}]},
    {app, compiler, [{incl_cond, include}]},
    {app, crypto, [{incl_cond, include}]},
    {app, inets, [{incl_cond, include}]},
    {app, kernel, [{incl_cond, include}]},
    {app, os_mon, [{incl_cond, include}]},
    {app, public_key, [{incl_cond, include}]},
    {app, runtime_tools, [{incl_cond, include}]},
    {app, sasl, [{incl_cond, include}]},
    {app, ssl, [{incl_cond, include}]},
    {app, stdlib, [{incl_cond, include}]},
    {app, syntax_tools, [{incl_cond, include}]},
    {app, xmerl, [{incl_cond, include}]},

    %% couchdb
    {app, b64url, [{incl_cond, include}]},
    {app, bear, [{incl_cond, include}]},
    {app, chttpd, [{incl_cond, include}]},
    {app, config, [{incl_cond, include}]},
    {app, couch, [{incl_cond, include}]},
    {app, couch_epi, [{incl_cond, include}]},
    {app, couch_index, [{incl_cond, include}]},
    {app, couch_log, [{incl_cond, include}]},
    {app, couch_mrview, [{incl_cond, include}]},
    {app, couch_plugins, [{incl_cond, include}]},
    {app, couch_replicator, [{incl_cond, include}]},
    {app, couch_stats, [{incl_cond, include}]},
    {app, couch_event, [{incl_cond, include}]},
    {app, couch_peruser, [{incl_cond, include}]},
    {app, ddoc_cache, [{incl_cond, include}]},
    {app, dreyfus, [{incl_cond, include}]},
    {app, ets_lru, [{incl_cond, include}]},
    {app, fabric, [{incl_cond, include}]},
    {app, folsom, [{incl_cond, include}]},
    {app, global_changes, [{incl_cond, include}]},
    {app, hyper, [{incl_cond, include}]},
    {app, ibrowse, [{incl_cond, include}]},
    {app, ioq, [{incl_cond, include}]},
    {app, jiffy, [{incl_cond, include}]},
    {app, ken, [{incl_cond, include}]},
    {app, khash, [{incl_cond, include}]},
    {app, mango, [{incl_cond, include}]},
    {app, mem3, [{incl_cond, include}]},
    {app, mochiweb, [{incl_cond, include}]},
    {app, rexi, [{incl_cond, include}]},
    {app, setup, [{incl_cond, include}]},
    {app, smoosh, [{incl_cond, include}]},
    {app, snappy, [{incl_cond, include}]}
]}.

{overlay_vars, "couchdb.config"}.
{overlay, [
    {copy, "../LICENSE", "LICENSE"},
    {mkdir, "var/log"},
    {copy, "overlay/bin"},
    {copy, "overlay/etc"},
    {copy, "../src/couch/priv/couchjs", "bin/couchjs"},
    {copy, "../share/server/main.js", "share/server/main.js"},
    {copy, "../share/server/main-coffee.js", "share/server/main-coffee.js"},
    {copy, "files/sys.config", "releases/\{\{rel_vsn\}\}/sys.config"},
    {copy, "files/vm.args", "releases/\{\{rel_vsn\}\}/vm.args"},
    {template, "overlay/etc/default.ini", "etc/default.ini"},
    {template, "overlay/etc/vm.args", "etc/vm.args"},
    {template, "files/couchdb.in", "bin/couchdb"},
    {template, "files/couchdb.cmd.in", "bin/couchdb.cmd"}
]}.
