#!/usr/local/bin/yap -L -- $*
#.

:- style_check(all).

:- yap_flag( write_strings, on).
:- yap_flag( gc_trace, verbose ).

:- use_module(library(readutil)).
:- use_module(library(lineutils)).
:- use_module(library(lists)).
:- use_module(library(maplist)).
:- use_module(library(system)).


:- initialization main.

main :-
    unix( argv(L0 ) ),
    (L0 == [] -> L = [.] ; L = L0 ),
    member( Lib, L ),
    absolute_file_name( Lib, NL, [glob('*.pl *.yap'),file_type(prolog), file_errors(fail), solutions(all)] ),
    %current_module(M), writeln(M:x:NL),
    catch( ensure_loaded( NL ) , Error, (format('crash ~w in ~a~n',[Error,NL]), module(user) ) ),
    fail.

main :-
    unix( argv(L) ),
    member( Lib, L ),
    absolute_file_name( Lib, NL, [glob('*.pl *.yap'),file_type(prolog), file_errors(fail), solutions(all)] ),
    module_property( Mod, file( NL )),
    module_property( Mod, exports( Preds )),
    file_base_name( NL, NameF),
    format('~n~n~n~n/**~n @file ~a~n@defgroup ~a~n~n@ingroup @library~n~n', [NameF, Mod]),
    maplist(out, Preds ),
    format('~n~n*/', []),
    fail.

main.

out(N/A) :- format('  - ~q~n', [N/A]).