1 ! Copyright (C) 2004, 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: io.pathnames io.files io.encodings.ascii assocs sequences
4 splitting kernel namespaces fry memoize ;
7 MEMO: mime-db ( -- seq )
8 "resource:basis/mime/types/mime.types" ascii file-lines
9 [ "#" head? not ] filter [ " \t" split harvest ] map harvest ;
11 : nonstandard-mime-types ( -- assoc )
13 { "factor" "text/plain" }
14 { "cgi" "application/x-cgi-script" }
15 { "fhtml" "application/x-factor-server-page" }
18 MEMO: mime-types ( -- assoc )
20 mime-db [ unclip '[ [ _ ] dip set ] each ] each
22 nonstandard-mime-types assoc-union ;
24 : mime-type ( filename -- mime-type )
25 file-extension mime-types at "application/octet-stream" or ;