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