23
23
init_schemas (App , Config ) ->
24
24
DepsDir = ? config (erlang_mk_depsdir , Config ),
25
25
% Note: the schema for the rabbit app is named "rabbitmq.schema"
26
- RabbitSchema = filename :join ([DepsDir , " rabbit" , " priv" , " schema" , " rabbitmq.schema" ]),
26
+ RabbitSchemaInfo = {DepsDir , rabbit , " rabbitmq.schema" },
27
+ RabbitSchema = find_app_schema (RabbitSchemaInfo ),
27
28
Schemas = case App of
28
29
rabbit -> [RabbitSchema ];
29
- _ -> [RabbitSchema , find_app_schema (App , DepsDir )]
30
+ _ ->
31
+ SchemaFileName = atom_to_list (App ) ++ " .schema" ,
32
+ SchemaInfo = {DepsDir , App , SchemaFileName },
33
+ [RabbitSchema , find_app_schema (SchemaInfo )]
30
34
end ,
31
35
ct :pal (" Schemas ~p~n " , [Schemas ]),
32
36
SchemaDir = filename :join (? config (data_dir , Config ), " schema" ),
@@ -45,21 +49,21 @@ init_schemas(App, Config) ->
45
49
{conf_snippets , Snippets }
46
50
]).
47
51
48
- find_app_schema (App , DepsDir ) ->
49
- Schema = get_schema_for ([DepsDir , App , " priv " ], App ),
50
- does_schema_exist (filelib :is_regular (Schema ), App , DepsDir , Schema , cont ).
52
+ find_app_schema ({ DepsDir , App , SchemaFileName } = Info ) ->
53
+ SchemaFile = get_schema_for ([DepsDir , App ], SchemaFileName ),
54
+ does_schema_exist (filelib :is_regular (SchemaFile ), Info , SchemaFile , cont ).
51
55
52
- does_schema_exist (true , _App , _DepsDir , Schema , _ ) ->
53
- Schema ;
54
- does_schema_exist (false , App , _DepsDir , _Schema , stop ) ->
56
+ does_schema_exist (true , _Info , SchemaFile , _ ) ->
57
+ SchemaFile ;
58
+ does_schema_exist (false , { _ , App , _ }, _SchemaFile , stop ) ->
55
59
ct :fail (" Could not find schema for app: ~p~n " , [App ]);
56
- does_schema_exist (false , App , DepsDir , _Schema , cont ) ->
60
+ does_schema_exist (false , { DepsDir , _ , SchemaFileName } = Info , _SchemaFile , cont ) ->
57
61
% If not in umbrella, priv will be at ../priv
58
- Schema = get_schema_for ([DepsDir , " .." , " priv " ], App ),
59
- does_schema_exist (filelib :is_regular (Schema ), App , DepsDir , Schema , stop ).
62
+ SchemaFile = get_schema_for ([DepsDir , " .." ], SchemaFileName ),
63
+ does_schema_exist (filelib :is_regular (SchemaFile ), Info , SchemaFile , stop ).
60
64
61
- get_schema_for (Prefix , App ) ->
62
- filename :join (Prefix ++ [" schema " , atom_to_list ( App ) ++ " . schema" ]).
65
+ get_schema_for (Prefix , SchemaFileName ) ->
66
+ filename :join (Prefix ++ [" priv " , " schema" , SchemaFileName ]).
63
67
64
68
copy_to (File , Dir ) ->
65
69
BaseName = filename :basename (File ),
0 commit comments