annotate .swiplrc @ 100:a4cd935561d4 dml-dockerised tip

small updates and version pin for cliopatria
author wolffd <wolffd.mail@googlemail.com>
date Fri, 29 Jun 2018 17:48:41 +0100
parents cecf0cf46db3
children
rev   line source
samer@56 1 :- op(200,fy,@). % Shouldn't really need this...
daniel@54 2
daniel@54 3 colour_terminal :-
daniel@54 4 stream_property(user_output, tty(true)),
daniel@54 5 getenv('TERM',Term),
daniel@54 6 member(Term,[xterm,screen,'screen-256color','xterm-256color','xterm-color']).
daniel@54 7
daniel@54 8 :- dynamic http_proxy/3.
daniel@54 9
daniel@54 10 get_http_proxy(Host,Port,basic(User,Pwd)) :-
daniel@54 11 getenv(use_proxy,yes),
daniel@54 12 getenv(http_proxy,Proxy),
daniel@54 13 % proxy looks like http://User:Password@Host:Port
daniel@54 14 atom_concat('http://',Proxy1,Proxy), % strip off protocol
daniel@54 15 split_atom(Proxy1,Auth,'@',HostPort),
daniel@54 16 split_atom(Auth,User,':',Pwd),
daniel@54 17 split_atom(HostPort,Host,':',APort),
daniel@54 18 atom_number(APort,Port).
daniel@54 19
daniel@54 20 split_atom(Atom,Pre,Mid,Post) :-
daniel@54 21 sub_atom(Atom,LPre,_,LPost,Mid),
daniel@54 22 sub_atom(Atom,0,LPre,_,Pre),
daniel@54 23 sub_atom(Atom,_,LPost,0,Post).
daniel@54 24
daniel@54 25 internal_host(localhost).
samer@65 26 internal_host(Proxy) :- http_proxy(Proxy,_,_).
samer@65 27 %internal_host(Host) :- sub_atom(Host,_,_,0,'bl.uk').
daniel@54 28
samer@65 29 % New scheme for proxy handling (>=7.3.0)
samer@65 30 % :- multifile socket:proxy_for_url/3.
samer@65 31 % socket:proxy_for_url(_, Target, proxy(Host,Port)) :-
samer@65 32 % http_proxy(Host,Port,_),
samer@65 33 % \+internal_host(Target),
samer@65 34 % debug(proxy,'Using socketproxy ~w:~w for ~w',[Host,Port,Target]).
samer@65 35
samer@65 36 % Old scheme, still required to provide authorisation details
daniel@54 37 :- multifile http:open_options/2.
samer@65 38 http:open_options(Parts,[proxy(Host:Port),proxy_authorization(Auth)]) :-
daniel@54 39 http_proxy(Host,Port,Auth),
daniel@54 40 option(host(Target),Parts),
daniel@54 41 \+internal_host(Target),
samer@65 42 debug(proxy,'Using HTTP proxy ~w:~w for ~w',[Host,Port,Target]).
daniel@54 43
samer@56 44 :- (colour_terminal -> load_files(library(ansi_term), [silent(true)]); true),
daniel@54 45 set_prolog_flag(prompt_alternatives_on, determinism),
daniel@54 46 set_prolog_flag(editor, '$EDITOR'),
daniel@54 47 load_files(library(url), [silent(true)]),
daniel@54 48 load_files(library(http/http_ssl_plugin), [silent(true)]),
samer@65 49 retractall(http_proxy(_,_,_)),
daniel@54 50 ( get_http_proxy(Host,Port,Auth)
daniel@54 51 -> assert(http_proxy(Host,Port,Auth))
daniel@54 52 ; true
daniel@54 53 ).
daniel@54 54