%% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
|
|
%% ex: ts=4 sw=4 et
|
|
%%
|
|
%% @doc A localfs custom resource (for testing purposes only)
|
|
%%
|
|
%% ```
|
|
%% {deps, [
|
|
%% %% Application files are copied from "/path/to/app_name"
|
|
%% {app_name, {localfs, "/path/to/app_name", undefined}}
|
|
%% ]}.
|
|
%% '''
|
|
-module(rebar_localfs_resource_v2).
|
|
|
|
-behaviour(rebar_resource_v2).
|
|
|
|
-export([init/2
|
|
,lock/2
|
|
,download/4
|
|
,needs_update/2
|
|
,make_vsn/2]).
|
|
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
|
|
-spec init(atom(), rebar_state:t()) -> {ok, term()}.
|
|
init(Type, _State) ->
|
|
Resource = rebar_resource_v2:new(Type, ?MODULE, #{}),
|
|
{ok, Resource}.
|
|
|
|
lock(AppInfo, _) ->
|
|
case rebar_app_info:source(AppInfo) of
|
|
{localfs, Path, _Ref} ->
|
|
{localfs, Path, undefined};
|
|
{localfs, Path} ->
|
|
{localfs, Path, undefined}
|
|
end.
|
|
|
|
needs_update(_AppInfo, _) ->
|
|
false.
|
|
|
|
download(TmpDir, AppInfo, State, _) ->
|
|
download_(TmpDir, rebar_app_info:source(AppInfo), State).
|
|
|
|
download_(TmpDir, {localfs, Path, _Ref}, State) ->
|
|
download_(TmpDir, {localfs, Path}, State);
|
|
download_(TmpDir, {localfs, Path}, _State) ->
|
|
ok = rebar_file_utils:cp_r(filelib:wildcard(Path ++ "/*"), TmpDir),
|
|
{ok, undefined}.
|
|
|
|
make_vsn(_AppInfo, _) ->
|
|
{plain, "undefined"}.
|