package responses

import (
	"mime"
	"net/http"
	"path/filepath"

	"git.kirsle.net/apps/gophertype/pkg/settings"
	assets "git.kirsle.net/apps/gophertype/pvt-www"
)

// 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 := assets.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))
}
