Browse Source

Detect mime type on runtime instead of hardcoding.

pull/87/head
Johannes 'fish' Ziemke 12 years ago
parent
commit
2434bac219
  1. 13
      utility/embed-static.sh
  2. 4
      web/blob/blob.go

13
utility/embed-static.sh

@ -5,34 +5,21 @@ package blob
var files = map [string] map [string] []byte { var files = map [string] map [string] []byte {
EOF EOF
type_file=`tempfile`
cat <<EOF > $type_file
var types = map [string] map [string] string {
EOF
CDIR=`pwd` CDIR=`pwd`
for dir in $@ for dir in $@
do do
cd "$dir" cd "$dir"
echo -e "\t\"`basename $dir`\": {" echo -e "\t\"`basename $dir`\": {"
echo -e "\t\"`basename $dir`\": {" >> $type_file
find -type f | while read file find -type f | while read file
do do
mime=`mimetype -b "$file"`
name=`echo "$file"|sed 's|\.\/||'` name=`echo "$file"|sed 's|\.\/||'`
echo -e "\t\t\"$name\": \"$mime\"," >> $type_file
echo -e "\t\t\"$name\": {" echo -e "\t\t\"$name\": {"
gzip -9 -c "$file" | xxd -p |sed 's/\(..\)/0x\1, /g' gzip -9 -c "$file" | xxd -p |sed 's/\(..\)/0x\1, /g'
echo -e "\t\t}," echo -e "\t\t},"
echo echo
done done
echo -e "\t}," >> $type_file
echo -e "\t}," echo -e "\t},"
cd $CDIR cd $CDIR
done done
echo '}' echo '}'
cat $type_file
echo '}'
rm $type_file

4
web/blob/blob.go

@ -10,7 +10,7 @@ import (
const ( const (
TemplateFiles = "templates" TemplateFiles = "templates"
StaticFiles = "static" StaticFiles = "static"
) )
func GetFile(bucket string, name string) ([]byte, error) { func GetFile(bucket string, name string) ([]byte, error) {
@ -43,6 +43,6 @@ func (h Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
return return
} }
w.Header().Set("Content-Type", types[StaticFiles][name]) w.Header().Set("Content-Type", http.DetectContentType(file))
w.Write(file) w.Write(file)
} }

Loading…
Cancel
Save