Packages

Erwatch is an Erlang/OTP application for tracking changes in a file system.

Current section

Files

Jump to
erwatch src erwatch_sup.erl
Raw

src/erwatch_sup.erl

% Copyright (c) 2016, Yuce Tekol <yucetekol@gmail.com>.
% All rights reserved.
% Redistribution and use in source and binary forms, with or without
% modification, are permitted provided that the following conditions are
% met:
% * Redistributions of source code must retain the above copyright
% notice, this list of conditions and the following disclaimer.
% * Redistributions in binary form must reproduce the above copyright
% notice, this list of conditions and the following disclaimer in the
% documentation and/or other materials provided with the distribution.
% * The names of its contributors may not be used to endorse or promote
% products derived from this software without specific prior written
% permission.
% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
% "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
% A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
% OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
% SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
% LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
% DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
% THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
% (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
% OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-module(erwatch_sup).
-behaviour(supervisor).
-export([start_link/0]).
-export([init/1]).
-define(SERVER, ?MODULE).
%% == API
start_link() ->
supervisor:start_link({local, ?SERVER}, ?MODULE, []).
%% == Callbacks
init([]) ->
SupSpec = {{rest_for_one, 10, 60}, [registry_spec(),
server_spec()]},
{ok, SupSpec}.
registry_spec() ->
#{id => erwatch_registry,
start => {erwatch_registry, start_link, []},
restart => permanent,
shutdown => 1000,
type => worker,
modules => [erwatch_registry]}.
server_spec() ->
#{id => erwatch_server_sup,
start => {erwatch_server_sup, start_link, []},
restart => permanent,
shutdown => 1000,
type => supervisor,
modules => [erwatch_server_sup]}.