package responses import ( "mime" "net/http" "path/filepath" "git.kirsle.net/apps/gophertype/pkg/bundled" "git.kirsle.net/apps/gophertype/pkg/console" "git.kirsle.net/apps/gophertype/pkg/settings" ) // SendFile sends a file from bindata or the user root. func SendFile(w http.ResponseWriter, r *http.Request, path string) { mimeType := mime.TypeByExtension(filepath.Ext(path)) if mimeType == "" { mimeType = "text/plain" } w.Header().Set("Content-Type", mimeType) if b, err := bundled.Asset(path); err == nil { w.Write(b) return } console.Debug("SendFile: http.ServeFile(%s)", filepath.Join(settings.UserRoot, path)) http.ServeFile(w, r, filepath.Join(settings.UserRoot, path)) }