mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2026-10-20 00:15:40 +00:00
48 lines
958 B
Go
48 lines
958 B
Go
//go:build ignore
|
|
|
|
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"go/format"
|
|
"io"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
f, err := os.OpenFile("mime.json", os.O_RDONLY, os.ModePerm)
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "error: %v\n", err)
|
|
os.Exit(1)
|
|
return
|
|
}
|
|
defer f.Close()
|
|
|
|
j, err := io.ReadAll(f)
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "error: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
mTypes := make(map[string]string, 0)
|
|
json.Unmarshal(j, &mTypes)
|
|
|
|
var buf bytes.Buffer
|
|
buf.WriteString("package mime\n")
|
|
buf.WriteString("func init() {\n")
|
|
for key, value := range mTypes {
|
|
fmt.Fprintf(&buf, "MimeTypes[\"%s\"] = \"%s\"\n", key, value)
|
|
}
|
|
buf.WriteString("}\n")
|
|
formatted, err := format.Source(buf.Bytes())
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "error formatting: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
if err = os.WriteFile("mime_generated.go", formatted, 0644); err != nil {
|
|
fmt.Fprintf(os.Stderr, "error writing file: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|