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

ConfigFile = filename:join([os:getenv("COUCHDB_APPS_CONFIG_DIR"), "couch_epi.config"]).
{ok, AppConfig} = file:consult(ConfigFile).

{application, couch_epi,
 [
  {description, "extensible plugin interface"},
  {vsn, git},
  {registered, [couch_epi_sup, couch_epi_server]},
  {applications, [
                  kernel,
                  stdlib
                 ]},
  {mod, { couch_epi_app, []}},
  {env, AppConfig}
 ]}.
