34 lines
631 B
V
34 lines
631 B
V
|
import net.http
|
||
|
import json
|
||
|
|
||
|
struct MimeType {
|
||
|
source string
|
||
|
extensions []string
|
||
|
compressible bool
|
||
|
charset string
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
mt_json := http.get('https://raw.githubusercontent.com/jshttp/mime-db/master/db.json')?
|
||
|
mt_map := json.decode(map[string]MimeType, mt_json.text)?
|
||
|
|
||
|
mut ext_to_mt_str := map[string]string{}
|
||
|
for mt_str, mt in mt_map {
|
||
|
for ext in mt.extensions {
|
||
|
ext_to_mt_str[ext] = mt_str
|
||
|
}
|
||
|
}
|
||
|
|
||
|
write_file('db.v', '
|
||
|
module mime
|
||
|
|
||
|
// FILE AUTOGENERATED BY `build.vsh` - DO NOT MANUALLY EDIT
|
||
|
|
||
|
const (
|
||
|
db = $mt_map
|
||
|
ext_to_mt_str = $ext_to_mt_str
|
||
|
)
|
||
|
')?
|
||
|
execute('${@VEXE} fmt -w db.v')
|
||
|
}
|