Changed script file parsing
[makerl.git] / src / mkrl_dispatcher.erl
blob3670caf8b0138220cd81b787cc6e8201457e0eae
1 %%%-------------------------------------------------------------------
2 %%% File : dispatcher.erl
3 %%% Author : <>
4 %%% Description :
5 %%%
6 %%% Created : 4 Apr 2011 by <>
7 %%%-------------------------------------------------------------------
8 -module(mkrl_dispatcher).
9 -include("makerl.hrl").
11 -export([build_dependencies/1,
12 aggregate_results/1,
13 unit/0,
14 combine_result/2]).
16 -spec build_dependencies([pid()]) -> [build_result()].
17 build_dependencies(Pids) ->
18 rpc:pmap({mkrl_task, build_pid}, [], Pids).
20 -spec aggregate_results([build_result()]) -> build_result().
21 aggregate_results(ResList) ->
22 lists:foldl(fun({ok, X}, {ok, Acc}) ->
23 {ok, [X|Acc]};
24 ({error, E}, {_, Acc}) ->
25 {error, [E|Acc]};
26 ({_, X}, {Status, Acc}) ->
27 {Status, [X|Acc]}
28 end,
29 {ok, []},
30 ResList).
33 -spec unit() -> build_result().
34 unit() -> {ok, []}.
36 -spec combine_result(build_result(), build_result()) -> build_result().
37 combine_result({ok, DepResult}, {ok, ThisResult}) ->
38 {ok, {ThisResult, DepResult}};
39 combine_result({_, DepResult}, {error, ThisResult}) ->
40 {error, {ThisResult, DepResult}};
41 combine_result({State, DepResult}, {_, ThisResult}) ->
42 {State, {ThisResult, DepResult}}.