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

%% -------------------------------------------------------------------
%%
%% derived from riaknostic - automated diagnostic tools for Riak
%%
%% Copyright (c) 2011 Basho Technologies, Inc.  All Rights Reserved.
%%
%% This file is provided to you 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.
%%
%% -------------------------------------------------------------------
%%
%% Modified to handle dependencies for weatherreport
%% Copyright (c) 2014 Cloudant
%%
%% -------------------------------------------------------------------

{escript_shebang, "#!/usr/bin/env escript\n"}.
{escript_comment, "%% -nocookie\n"}.

{escript_incl_apps, [config, couch_log, couch_stats]}.
