34 lines
631 B
V
Executable File
34 lines
631 B
V
Executable File
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')
|
|
}
|