Prolog "comply"

Admin User, created Oct 28. 2024
         
/**
* Prolog code for the compliance assessment suite.
*
* Warranty & Liability
* To the extent permitted by applicable law and unless explicitly
* otherwise agreed upon, XLOG Technologies AG makes no warranties
* regarding the provided information. XLOG Technologies AG assumes
* no liability that any problems might be solved with the information
* provided by XLOG Technologies AG.
*
* Rights & License
* All industrial property rights regarding the information - copyright
* and patent rights in particular - are the sole property of XLOG
* Technologies AG. If the company was not the originator of some
* excerpts, XLOG Technologies AG has at least obtained the right to
* reproduce, change and translate the information.
*
* Reproduction is restricted to the whole unaltered document. Reproduction
* of the information is only allowed for non-commercial uses. Selling,
* giving away or letting of the execution of the library is prohibited.
* The library can be distributed as part of your applications and libraries
* for execution provided this comment remains unchanged.
*
* Restrictions
* Only to be distributed with programs that add significant and primary
* functionality to the library. Not to be distributed with additional
* software intended to replace any components of the library.
*
* Trademarks
* Jekejeke is a registered trademark of XLOG Technologies AG.
*/
% main
main :- current_prolog_flag(dialect, gprolog), !,
current_prolog_flag(argv, [_|List]),
dispatch(List).
main :-
current_prolog_flag(argv, List),
dispatch(List).
% dispatch(+List)
dispatch([dump,Tag]) :- !,
env(test, Test),
host(Root),
root(Root, Dump, _),
ensure_directory(Dump),
atom_concat(Dump, Test, Dump3),
ensure_directory(Dump3),
write('Test run ...'), nl,
legend_batch([Tag]),
runner_batch(Tag),
temp(Tag, A),
atom_concat(Dump3, A, Temp),
write('Generating dump ...'), nl,
dump_result(Temp).
dispatch([report]) :- !,
env(test, Test),
env(title, Title),
write('Loading dumps ...'), nl,
host(Root),
root(Root, Dump, Subtitle),
atom_concat(Dump, Test, Dump3),
(temp(_, A),
atom_concat(Dump3, A, Temp),
ensure_loaded(Temp),
fail; true),
legend_batch,
legend_batch([cnt]),
count_batch(cnt),
findall(Tag, temp(Tag, _), List),
append(List, [cnt], List2),
write('Generating reports ...'), nl,
(env(report(Lang), Dest),
ensure_directory(Dest),
Lang \== '$ensure_directory',
env(source(Lang), Src),
file_directory_name(Src, Dir),
file_base_name(Src, Name),
atom_concat(Dest, Test, Dest2),
atom_concat(Dir, Test, Src2),
atom_concat(Src2, Name, Src3),
report_batch(Dest2, List2, [tests(Src3), locale(Lang),
title(Title), root(Root), subtitle(Subtitle)]),
fail; true).
dispatch([]).