% vim: set ft=erlang : -*- erlang -*- % Magic lines for code editors

% 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.


CouchConfig = case filelib:is_file(os:getenv("COUCHDB_CONFIG")) of
    true ->
        {ok, Result} = file:consult(os:getenv("COUCHDB_CONFIG")),
        Result;
    false ->
        []
end,

CustodianMonitor = case lists:keyfind(custodian_monitor, 1, CouchConfig) of
    {custodian_monitor, Module} when Module /= "" ->
        list_to_atom(Module);
    _ ->
        custodian_noop_monitor
end,

CurrentOpts = case lists:keyfind(erl_opts, 1, CONFIG) of
    {erl_opts, Opts} -> Opts;
    false -> []
end,

CustodianOpts = {d, 'CUSTODIAN_MONITOR', CustodianMonitor},
lists:keystore(erl_opts, 1, CONFIG, {erl_opts, [CustodianOpts | CurrentOpts]}).
