%% -*- 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"}.