1:- module('$pac$', []). 2:- user:set_prolog_flag(encoding, utf8). 3:- user:set_prolog_flag(optimise, true). 4:- user:set_prolog_flag(qcompile, auto). 5:- user:set_prolog_flag(editor, emacsclient). 6:- user:set_prolog_flag(history, 0). 7:- setenv('EDITOR', emacsclient). 8
9:- use_module(library(macros)). 10
11#define(local_cgi_config, '/.config/cgi-config').
12
13:- dynamic user:file_search_path/2. 14:- multifile user:file_search_path/2. 15
16:- use_module('setup-aux'). 17
18pac_directories(
19 [ (pac_root : []) -
20 [ test:test,
21 :(prolog) -
22 [ pac : pac,
23 util : util,
24 zdd : zdd,
25 tmp : tmp,
26 gb : "util/grobner",
27 other : other
28 ]]]
29 ).
30
31setup_root_home_user(Dir):-
32 split_string(Dir, /, '', [_, Root, User|_]),
33 atomic_list_concat([/,Root,/,User], Home),
34 setenv(home, Home),
35 setenv(user, User),
36 setenv(pac_root, Dir).
37
38setup_cgi_config:- getenv(home, H),
39 atom_concat(H, #local_cgi_config, Mod),
40 atom_concat(Mod, ".pl", Modpl),
41 ( exists_file(Modpl) ->
42 use_module(Mod),
43 cgi_eqns(Eqns),
44 maplist(setup_env, Eqns)
45 ; true
46 ),
47 pac_directories(DirStr),
48 mk_file_search_path(DirStr).
49
50:- prolog_load_context(directory, Dir),
51 setup_root_home_user(Dir),
52 setup_cgi_config. 53
57
61
62user: enable_pac_query :- set_prolog_flag(pac, true).
63user: disable_pac_query :- set_prolog_flag(pac, false).
64user: chk_pac_query :- current_prolog_flag(pac, true).
65
66user: enable_odict :- set_prolog_flag(odict, true).
67user: disable_odict :- set_prolog_flag(odict, false).
68user: chk_odict :- current_prolog_flag(odict, true).
69
70:- use_module([
71 library(clpfd),
72 library(dif),
73 library(lists),
74 library(sort),
75 library(ordsets),
76 library(url),
77 library(ugraphs),
78 library(readutil),
79 library(apply),
80 library(apply_macros)
81 ]). 83user: expand_query(X, Y, Z, Z) :- user:chk_pac_query, !,
84 '$current_typein_module'(C),
85 pac:expand_query(C, X, Y).
86user: expand_query(X, X, Z, Z).
87
88:- use_module(pac('expand-pac')). 89:- use_module(util('env-dict')). 90:- use_module(util(file)). 91
92:- user:enable_pac_query. 93:- user:enable_odict.