35
36:- module(swish_paths, []). 37:- use_module(library(http/http_path), []).
42:- initialization initialize_paths. 43
44:- multifile
45 user:file_search_path/2,
46 http:location/3. 47
48user:file_search_path(data, data).
49user:file_search_path(config_enabled, 'config-enabled').
50user:file_search_path(config_enabled, swish('config-enabled')).
51user:file_search_path(config, config_enabled(.)).
52user:file_search_path(config, swish('config-available')).
53user:file_search_path(swish_web, swish(web)).
54user:file_search_path(swish_pack, swish(pack)).
55user:file_search_path(js, swish_web(js)).
56user:file_search_path(css, swish_web(css)).
57user:file_search_path(icons, swish_web(icons)).
63set_swish_path :-
64 absolute_file_name(swish('swish.pl'), _,
65 [file_errors(fail), access(read)]), !.
66set_swish_path :-
67 prolog_load_context(directory, Dir),
68 asserta(user:file_search_path(swish, Dir)).
74attach_local_packs :-
75 attach_packs(swish_pack(.), [duplicate(replace), search(first)]).
81set_data_path :-
82 absolute_file_name(data(.), _,
83 [ file_type(directory),
84 access(write),
85 file_errors(fail)
86 ]), !.
87set_data_path :-
88 absolute_file_name(data(.), Dir,
89 [ solutions(all)
90 ]),
91 \+ exists_directory(Dir),
92 catch(make_directory(Dir),
93 error(permission_error(create,directory,Dir), _),
94 fail), !,
95 print_message(informational, swish(created_data_dir(Dir))).
96set_data_path :-
97 print_message(error, swish(no_data_dir)),
98 halt(1).
99
100initialize_paths :-
101 set_swish_path,
102 attach_local_packs,
103 set_data_path.
104
106
107http:location(swish, root(.), [priority(-100)])
Setup SWISH search paths
*/