From d86d12332269c0d8b13ab2ea70c688640e44946e Mon Sep 17 00:00:00 2001 From: Adam Szatyin Date: Mon, 10 May 2021 22:38:08 +0200 Subject: Add mimetype mapping settings (#15133) * Fix APK's Content-Type header * Fix case sensitive comparison * Add custom mime type mapping for downloadable files * Add documentation for MIME type mapping * Rename download.mimetype.mapping configuration to repository.mimetype_mapping Co-authored-by: zeripath --- modules/setting/mime_type_map.go | 31 +++++++++++++++++++++++++++++++ modules/setting/setting.go | 1 + 2 files changed, 32 insertions(+) create mode 100644 modules/setting/mime_type_map.go (limited to 'modules') diff --git a/modules/setting/mime_type_map.go b/modules/setting/mime_type_map.go new file mode 100644 index 0000000000..5c1fc7f71a --- /dev/null +++ b/modules/setting/mime_type_map.go @@ -0,0 +1,31 @@ +// Copyright 2021 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package setting + +import "strings" + +var ( + // MimeTypeMap defines custom mime type mapping settings + MimeTypeMap = struct { + Enabled bool + Map map[string]string + }{ + Enabled: false, + Map: map[string]string{}, + } +) + +func newMimeTypeMap() { + sec := Cfg.Section("repository.mimetype_mapping") + keys := sec.Keys() + m := make(map[string]string, len(keys)) + for _, key := range keys { + m[strings.ToLower(key.Name())] = key.Value() + } + MimeTypeMap.Map = m + if len(keys) > 0 { + MimeTypeMap.Enabled = true + } +} diff --git a/modules/setting/setting.go b/modules/setting/setting.go index aef0d86700..4244b55939 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -1177,4 +1177,5 @@ func NewServices() { newTaskService() NewQueueService() newProject() + newMimeTypeMap() } -- cgit v1.2.3