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

-module(config_app).

-behaviour(application).

%% Application callbacks
-export([start/2, stop/1]).

%% ===================================================================
%% Application callbacks
%% ===================================================================

start(_StartType, _StartArgs) ->
    config_sup:start_link(get_ini_files()).

stop(_State) ->
    ok.

get_ini_files() ->
    Etc = filename:join(code:root_dir(), "etc"),
    Default = [filename:join(Etc,"default.ini"), filename:join(Etc,"local.ini")],
    case init:get_argument(couch_ini) of
    error ->
        Default;
    {ok, [[]]} ->
        Default;
    {ok, [Values]} ->
        Values
    end.

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

-module(config_app).

-behaviour(application).

%% Application callbacks
-export([start/2, stop/1]).

%% ===================================================================
%% Application callbacks
%% ===================================================================

start(_StartType, _StartArgs) ->
    config_sup:start_link(get_ini_files()).

stop(_State) ->
    ok.

get_ini_files() ->
    Etc = filename:join(code:root_dir(), "etc"),
    Default = [filename:join(Etc,"default.ini"), filename:join(Etc,"local.ini")],
    DefaultExists = lists:filter(fun filelib:is_file/1, Default),
    case init:get_argument(couch_ini) of
    error ->
        DefaultExists;
    {ok, [[]]} ->
        DefaultExists;
    {ok, [Values]} ->
        Values
    end.

Check that default config files exist
Check that default config files exist

Avoid trying to load the default config files if they don't exist.
