- %% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
- %% ex: ts=4 sw=4 et
- -module(rebar_resource).
-
- -export([]).
-
- -export_types([resource/0
- ,type/0
- ,location/0
- ,ref/0]).
-
- -type resource() :: {type(), location(), ref()}.
- -type type() :: atom().
- -type location() :: string().
- -type ref() :: any().
-
- -ifdef(no_callback_support).
-
- %% In the case where R14 or lower is being used to compile the system
- %% we need to export a behaviour info
- -export([behaviour_info/1]).
-
- -spec behaviour_info(atom()) -> [{atom(), arity()}] | undefined.
- behaviour_info(callbacks) ->
- [{lock, 2},
- {download, 2},
- {needs_update,2},
- {make_vsn, 1}];
- behaviour_info(_) ->
- undefined.
-
- -else.
-
- -callback lock(file:filename_all(), tuple()) ->
- rebar_resource:resource().
- -callback download(file:filename_all(), tuple()) ->
- {tarball, file:filename_all()} | {ok, any()} | {error, any()}.
- -callback needs_update(file:filename_all(), tuple()) ->
- {tarball, file:filename_all()} | {ok, any()} | {error, any()}.
- -callback make_vsn(file:filename_all()) ->
- {plain, string()} | {error, string()}.
-
- -endif.
|