new object $mime_lib: $libraries;
var $mime_lib mime_types = #[];
var $root inited = 1;
public method .mime_type() {
arg filename;
var ext;
ext = filename.explode(".").last();
catch ~keynf {
return mime_types[ext];
} with {
return "text/plain";
}
};
public method .startup() {
var line, i;
if (caller() != $sys) {
throw(~perm, "Caller is not $sys");
}
fopen("/mime.types");
mime_types = #[];
catch ~eof {
while (1) {
line = fread();
if (line && line[1] != "#") {
line = line.explode();
for i in (line.subrange(2)) {
mime_types = mime_types.add(i, line[1]);
}
}
}
}
fclose();
};