1%#!/usr/bin/swipl 
    2
    3:- module(logicmoo_packages,[ rescan_pack_autoload_packages/0 ]).    4
    5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6% PACK LOADER
    7%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8:- use_module(library(prolog_pack)).    9
   10:- if( \+ prolog_pack:current_pack(logicmoo_base)).   11
   12:- attach_packs('/opt/logicmoo_workspace/packs_sys',[duplicate(keep)]).   13
   14:- multifile(user:file_search_path/2).   15:-   dynamic(user:file_search_path/2).   16:- prolog_load_context(directory,Dir),
   17   absolute_file_name('../../',Y,[relative_to(Dir),file_type(directory)]),
   18   (( \+ user:file_search_path(pack,Y)) ->asserta(user:file_search_path(pack,Y));true).   19:- initialization(attach_packs,now).   20:- pack_list_installed.   21:- endif.   22
   23
   24         
   25%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   26:- dmsg("AUTOLOAD PACKAGES").   27%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   28
   29/*
   30pack_autoload_packages(NeedExistingIndex):- 
   31 forall(user:expand_file_search_path(library(''),Dir),
   32  ignore(( (\+ NeedExistingIndex ; absolute_file_name('INDEX',_Absolute,[relative_to(Dir),access(read),file_type(prolog),file_errors(fail)]))->
   33   make_library_index(Dir, ['*.pl']) -> 
   34  (user:library_directory(Dir) -> true ; (asserta(user:library_directory(Dir)) , reload_library_index))))).
   35
   36:- before_boot(pack_autoload_packages(true)).
   37*/
   38
   39
   40rescan_pack_autoload_packages:- \+ access_file('.',write),dmsg("READONLY PACKAGES"),!.
   41rescan_pack_autoload_packages:- \+ app_argv('--all'),!.
   42rescan_pack_autoload_packages:- dmsg("AUTOLOADING PACKAGES..."),
   43 forall('$pack':pack(Pack, _),
   44  forall(((pack_property(Pack, directory(PackDir)),prolog_pack:pack_info_term(PackDir,autoload(true)))),
   45  (access_file(PackDir,write) -> prolog_pack:post_install_autoload(PackDir, [autoload(true)]) ; true))),
   46 dmsg(".. AUTOLOADING COMPLETE"),!.
   47
   48:- before_boot(rescan_pack_autoload_packages).   49:- during_boot(rescan_pack_autoload_packages).   50
   51
   52%:- reload_library_index.
   53%:- autoload([verbose(true)]).
   54:- reload_library_index.