% 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", "", [
        %% stdlib
        asn1,
        compiler,
        crypto,
        inets,
        kernel,
        runtime_tools,
        sasl,
        ssl,
        stdlib,
        os_mon,
        syntax_tools,
        xmerl,
        %% couchdb
        b64url,
        exxhash,
        couch_quickjs,
        chttpd,
        config,
        couch,
        couch_epi,
        couch_index,
        couch_log,
        couch_mrview,
        couch_replicator,
        couch_stats,
        couch_event,
        couch_peruser,
        couch_dist,
        custodian,
        ddoc_cache,
        dreyfus,
        ets_lru,
        fabric,
        global_changes,
        gun,
        cowlib,
        ibrowse,
        ioq,
        jiffy,
        jwtf,
        ken,
        mango,
        mem3,
        mochiweb,
        rexi,
        setup,
        smoosh,
        snappy,
        weatherreport,
        couch_prometheus,
        couch_scanner,

        %% extra
        nouveau,
        recon
    ]},
    {rel, "start_clean", "", [kernel, stdlib]},
    {boot_rel, "couchdb"},
    {profile, embedded},
    {excl_sys_filters, ["^bin/.*", "^erts.*/bin/(dialyzer|typer)"]},
    {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, 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, os_mon, [{incl_cond, include}]},
    {app, syntax_tools, [{incl_cond, include}]},
    {app, xmerl, [{incl_cond, include}]},

    %% couchdb
    {app, b64url, [{incl_cond, include}]},
    {app, exxhash, [{incl_cond, include}]},
    {app, couch_quickjs, [{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_replicator, [{incl_cond, include}]},
    {app, couch_stats, [{incl_cond, include}]},
    {app, couch_event, [{incl_cond, include}]},
    {app, couch_peruser, [{incl_cond, include}]},
    {app, couch_dist ,[{incl_cond, include}]},
    {app, custodian, [{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, global_changes, [{incl_cond, include}]},
    {app, gun, [{incl_cond, include}]},
    {app, cowlib, [{incl_cond, include}]},
    {app, ibrowse, [{incl_cond, include}]},
    {app, ioq, [{incl_cond, include}]},
    {app, jiffy, [{incl_cond, include}]},
    {app, jwtf, [{incl_cond, include}]},
    {app, ken, [{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}]},
    {app, weatherreport, [{incl_cond, include}]},
    {app, couch_prometheus, [{incl_cond, include}]},
    {app, couch_scanner, [{incl_cond, include}]},

    %% extra
    {app, nouveau, [{incl_cond, include}]},
    {app, recon, [{incl_cond, include}]}
]}.

{overlay_vars, "couchdb.config"}.
{overlay, [
    {copy, "../LICENSE", "LICENSE"},
    {mkdir, "var/log"},
    {copy, "overlay/bin"},
    {copy, "overlay/etc"},
    {copy, "../src/weatherreport/weatherreport", "bin/weatherreport"},
    {copy, "files/sys.config", "releases/sys.config"},
    {copy, "files/vm.args", "releases/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"},
    {template, "nouveau.yaml", "etc/nouveau.yaml"}
]}.
