Skip to content

Commit d759c46

Browse files
committed
fix multi-line strings not being parsed correctly in config.ini (#651)
* fix multi-line strings not being parsed correctly in `config.ini` * add tests
1 parent b691425 commit d759c46

File tree

4 files changed

+36
-2
lines changed

4 files changed

+36
-2
lines changed

main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ body {
644644
`
645645

646646
func parseIni(filename string) (args []string, err error) {
647-
cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false}, filename)
647+
cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename)
648648
if err != nil {
649649
return nil, err
650650
}

main_test.go

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package main
2+
3+
import (
4+
"crypto/x509"
5+
"encoding/pem"
6+
"path/filepath"
7+
"testing"
8+
9+
"github.com/stretchr/testify/require"
10+
)
11+
12+
func TestValidSignatureKey(t *testing.T) {
13+
testfile := filepath.Join("test", "testdata", "test.ini")
14+
args, err := parseIni(testfile)
15+
require.NoError(t, err)
16+
require.NotNil(t, args)
17+
err = iniConf.Parse(args)
18+
require.NoError(t, err)
19+
print(*signatureKey)
20+
block, _ := pem.Decode([]byte(*signatureKey))
21+
require.NotNil(t, block)
22+
key, err := x509.ParsePKIXPublicKey(block.Bytes)
23+
require.NoError(t, err)
24+
require.NotNil(t, key)
25+
}

systray/systray_real.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ func getConfigs() []configIni {
182182
err := filepath.Walk(dest, func(path string, f os.FileInfo, _ error) error {
183183
if !f.IsDir() {
184184
if filepath.Ext(path) == ".ini" {
185-
cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true}, filepath.Join(dest, f.Name()))
185+
cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true, AllowPythonMultilineValues: true}, filepath.Join(dest, f.Name()))
186186
if err != nil {
187187
return err
188188
}

test/testdata/test.ini

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
signatureKey = -----BEGIN PUBLIC KEY-----
2+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvc0yZr1yUSen7qmE3cxF
3+
IE12rCksDnqR+Hp7o0nGi9123eCSFcJ7CkIRC8F+8JMhgI3zNqn4cUEn47I3RKD1
4+
ZChPUCMiJCvbLbloxfdJrUi7gcSgUXrlKQStOKF5Iz7xv1M4XOP3JtjXLGo3EnJ1
5+
pFgdWTOyoSrA8/w1rck4c/ISXZSinVAggPxmLwVEAAln6Itj6giIZHKvA2fL2o8z
6+
CeK057Lu8X6u2CG8tRWSQzVoKIQw/PKK6CNXCAy8vo4EkXudRutnEYHEJlPkVgPn
7+
2qP06GI+I+9zKE37iqj0k1/wFaCVXHXIvn06YrmjQw6I0dDj/60Wvi500FuRVpn9
8+
twIDAQAB
9+
-----END PUBLIC KEY-----

0 commit comments

Comments
 (0)