1:- module(logicmoo_webui,[
2 load_web_package_dirs/0,
3 webui_load_swish_and_clio/0,
4 webui_start_swish_and_clio/0]). 5
6:- use_module(library(prolog_pack)). 7
8:- if( \+ current_prolog_flag(windows,true)). 9 :- if( \+ exists_source(library(phil))). 10 attach_linuxOnly_packs_web :- (working_directory(Dir,Dir);prolog_load_context(directory,Dir)),
11 ('../linuxOnly'=Rel;'../../linuxOnly'=Rel;'../../../linuxOnly'=Rel;
12 '../../../../linuxOnly'=Rel;'../../../../../../linuxOnly'=Rel),
13 absolute_file_name(Rel,LinuxOnlyPacks,[relative_to(Dir),file_type(directory),file_errors(fail)]),
14 attach_packs(LinuxOnlyPacks),!,
15 pack_list_installed.
16
17 :- endif. 18:- endif. 19
20:- dynamic(lmconfig:logicmoo_webui_dir/1). 21
22:- lmconfig:logicmoo_webui_dir(_) -> true;
23 prolog_load_context(directory,Dir),asserta(lmconfig:logicmoo_webui_dir(Dir)). 24
25:- listing(lmconfig:logicmoo_webui_dir/1). 26
27attach_packs_relative_web_dir(Rel):-
28 once(((
29 lmconfig:logicmoo_webui_dir(Dir),
30 (absolute_file_name(Rel,PackDir,[relative_to(Dir),file_type(directory),file_errors(fail)]);
31 absolute_file_name(Rel,PackDir,[file_type(directory),file_errors(fail)])),
32 writeln(attach_packs(PackDir)),attach_packs(PackDir)));writeln(failed(attach_packs_relative_web_dir(Rel)))).
33
34load_web_package_dirs:-
35 findall(PackDir,'$pack':pack(Pack, PackDir),Before),
36 ignore(( \+ exists_source(library(logicmoo_common)), attach_packs_relative_web_dir('../../logicmoo_utils/../'))),
37 ignore(( \+ exists_source(library(sldnfdraw)), attach_packs_relative_web_dir('../../packs_lib/'))),
38 ignore(( \+ exists_source(library(lps_corner)), attach_packs_relative_web_dir('../'))),
39 ignore(( \+ exists_source(library(rserve_client)), attach_packs_relative_web_dir('../swish/pack/'))),
40 41 findall(PackDir,'$pack':pack(Pack, PackDir),After),
42 (Before\==After -> (writeln(load_package_dirs(After)),pack_list_installed) ; true),
43 !.
44
45
46
47:- initialization(load_web_package_dirs, now). 48:- initialization(load_web_package_dirs, restore_state). 49
50:- multifile(sandbox:safe_primitive/1). 51:- dynamic(sandbox:safe_primitive/1). 52:- multifile(sandbox:safe_meta_predicate/1). 53:- dynamic(sandbox:safe_meta_predicate/1). 54
55:- dynamic(http_unix_daemon:http_daemon/0). 56
57:- use_module(library(logicmoo_common)). 58:- if(\+ prolog_load_context(reloading,true)). 59:- use_module(library(sandbox)). 60:- use_module(library(pengines_sandbox)). 62:- system:use_module(library(console_input)). 63:- system:use_module(library(date)). 64:- system:use_module(library(make)). 65:- system:use_module(library(qsave)). 66:- system:use_module(library(prolog_autoload)). 67:- system:use_module(library(lists)). 68:- system:use_module(library(backcomp)). 69:- system:use_module(library(edit)). 70:- system:use_module(library(prolog_trace)). 71:- system:use_module(library(threadutil)). 72:- system:use_module(library(yall)). 73:- system:use_module(library(time)). 74:- abolish(system:time/1). 75:- system:use_module(library(statistics)). 76
77
78:- system:use_module(library(apply)). 79:- system:use_module(library(assoc)). 80:- system:use_module(library(base64)). 81:- system:use_module(library(charsio)). 82:- system:use_module(library(codesio)). 83:- system:use_module(library(crypt)). 84:- system:use_module(library(ctypes)). 85:- system:use_module(library(dialect)). 86:- system:use_module(library(doc_files)). 87:- system:use_module(library(doc_http)). 88:- system:use_module(library(edinburgh)). 89:- system:use_module(library(error)). 90:- system:use_module(library(filesex)). 91:- system:use_module(library(gensym)). 92:- system:use_module(library(git)). 93:- system:use_module(library(http/html_head)). 94:- system:use_module(library(http/http_dispatch)). 95:- system:use_module(library(http/http_path)). 96:- system:use_module(library(http/mimetype)). 97:- system:use_module(library(lazy_lists)). 98:- system:use_module(library(listing)). 99:- system:use_module(library(lists)). 100:- system:use_module(library(memfile)). 101:- system:use_module(library(modules)). 102:- system:use_module(library(nb_rbtrees)). 103:- system:use_module(library(occurs)). 104:- system:use_module(library(operators)). 105:- system:use_module(library(option)). 106:- system:use_module(library(ordsets)). 107:- system:use_module(library(pairs)). 108:- system:use_module(library(pldoc)). 109:- system:use_module(library(pldoc/doc_html)). 110:- system:use_module(library(pldoc/doc_process)). 111:- system:use_module(library(pldoc/doc_search)). 112:- system:use_module(library(pldoc/doc_util)). 113:- system:use_module(library(pldoc/man_index)). 114:- system:use_module(library(porter_stem)). 116:- system:use_module(library(predicate_options)). 117:- system:use_module(library(process)). 118:- system:use_module(library(prolog_clause)). 119:- system:use_module(library(prolog_code)). 120:- system:use_module(library(prolog_codewalk)). 121:- system:use_module(library(prolog_config)). 122:- system:use_module(library(prolog_source)). 123:- system:use_module(library(prolog_stack)). 124:- system:use_module(library(prolog_xref)). 125:- system:use_module(library(pure_input)). 126:- system:use_module(library(quintus)). 127:- system:use_module(library(readutil)). 128:- system:use_module(library(sgml)). 129:- system:use_module(library(sgml_write)). 130:- system:use_module(library(sha)). 131:- system:use_module(library(shell)). 132:- system:use_module(library(shlib)). 133:- system:use_module(library(socket)). 134:- system:use_module(library(solution_sequences)). 135:- system:use_module(library(sort)). 136:- system:use_module(library(ssl)). 137:- system:use_module(library(system)). 138:- system:use_module(library(thread_pool)). 139:- system:use_module(library(uri)). 140:- system:use_module(library(url)). 141:- system:use_module(library(uuid)). 142:- system:use_module(library(varnumbers)). 143:- system:use_module(library(when)). 144:- system:use_module(library(writef)). 145:- system:use_module(library(zlib)). 146
149:- system:use_module(library(wfs),[call_residual_program/2,call_delays/2,delays_residual_program/2,answer_residual/2]). 152:- endif. 153
154sandbox:safe_primitive(dumpst:dumpST()).
155sandbox:safe_meta_predicate(system:notrace/1).
156
157:- if(\+ prolog_load_context(reloading,true)). 158:- use_module(library(sandbox)). 159:- use_module(library(pengines_sandbox)). 160:- endif. 161
162webui_load_swish_and_clio:-
163 user:ensure_loaded(library('../swish/run_swish_and_clio')),
164 swish_app:load_config('./config-enabled-swish'),
165 listing(swish_config:login_item/2),!.
166
167
168webui_start_swish_and_clio:-
169 webui_load_swish_and_clio,
170 broadcast:broadcast(http(pre_server_start)),
171 cp_server:cp_server([]),
172 broadcast:broadcast(http(post_server_start)),
173 swish:start_swish_stat_collector,!.
174
175
176
177:- initialization(webui_start_swish_and_clio,restore). 178:- initialization(webui_start_swish_and_clio,program).