Add DefaultLang config variable to set text/gemini lang parameter. Overridable via .molly file.

This commit is contained in:
Solderpunk 2020-06-10 21:22:15 +02:00
parent 7fb5ca052b
commit 3e80488f92
2 changed files with 10 additions and 0 deletions

View File

@ -12,6 +12,7 @@ type Config struct {
DocBase string
HomeDocBase string
GeminiExt string
DefaultLang string
LogPath string
TempRedirects map[string]string
PermRedirects map[string]string
@ -21,6 +22,7 @@ type Config struct {
type MollyFile struct {
GeminiExt string
DefaultLang string
}
func getConfig(filename string) (Config, error) {
@ -35,6 +37,7 @@ func getConfig(filename string) (Config, error) {
config.DocBase = "/var/gemini/"
config.HomeDocBase = "users"
config.GeminiExt = "gmi"
config.DefaultLang = ""
config.LogPath = "molly.log"
config.TempRedirects = make(map[string]string)
config.PermRedirects = make(map[string]string)

View File

@ -256,6 +256,9 @@ func parseMollyFiles(path string, info os.FileInfo, config *Config) {
if mollyFile.GeminiExt != "" {
config.GeminiExt = mollyFile.GeminiExt
}
if mollyFile.DefaultLang != "" {
config.DefaultLang = mollyFile.DefaultLang
}
}
}
@ -328,6 +331,10 @@ func serveFile(path string, log *LogEntry, conn net.Conn, config Config) {
} else {
mimeType = mime.TypeByExtension(ext)
}
// Add lang parameter
if mimeType == "text/gemini" && config.DefaultLang != "" {
mimeType += "; lang=" + config.DefaultLang
}
// Set a generic MIME type if the extension wasn't recognised
if mimeType == "" {
mimeType = "application/octet-stream"