1 USING: assocs environment io.encodings.utf8 io.files
2 io.pathnames kernel sequences splitting system unicode ;
6 HOOK: hosts-path os ( -- path )
9 "SystemRoot" os-env "System32/drivers/etc/hosts" append-path ;
11 M: unix hosts-path "/etc/hosts" ;
13 : parse-hosts ( path -- hosts )
15 [ [ unicode:blank? ] trim ] map harvest
18 [ unicode:blank? ] split1-when
19 [ unicode:blank? ] split-when harvest
22 MEMO: system-hosts ( -- hosts ) hosts-path parse-hosts ;
24 : host>ips ( host -- ips )
25 system-hosts [ member? nip ] with assoc-filter keys ;
27 : ip>hosts ( ip -- hosts )