aboutsummaryrefslogtreecommitdiffstats
path: root/config/converters.go
blob: 829361fb0fb9950bfc363dd5e884fd551ce7fe0c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package config

import (
	"fmt"
	"strings"

	"git.sr.ht/~rjarry/aerc/lib/log"
	"github.com/go-ini/ini"
)

var Converters = make(map[string]string)

func parseConverters(file *ini.File) error {
	converters, err := file.GetSection("multipart-converters")
	if err != nil {
		goto out
	}

	for mimeType, command := range converters.KeysHash() {
		mimeType = strings.ToLower(mimeType)
		if mimeType == "text/plain" {
			return fmt.Errorf(
				"multipart-converters: text/plain is reserved")
		}
		if !strings.HasPrefix(mimeType, "text/") {
			return fmt.Errorf(
				"multipart-converters: %q: only text/* MIME types are supported",
				mimeType)
		}
		Converters[mimeType] = command
	}

out:
	log.Debugf("aerc.conf: [multipart-converters] %#v", Converters)
	return nil
}