Skip to content

Commit c4349b0

Browse files
Set installCerts value in config.ini if certicates are manually installed
1 parent d635bbb commit c4349b0

File tree

3 files changed

+24
-18
lines changed

3 files changed

+24
-18
lines changed

config/config.go

+18
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"os"
2222

2323
"github.com/arduino/go-paths-helper"
24+
"github.com/go-ini/ini"
2425
log "github.com/sirupsen/logrus"
2526
)
2627

@@ -124,3 +125,20 @@ func GenerateConfig(destDir *paths.Path) *paths.Path {
124125
log.Infof("generated config in %s", configPath)
125126
return configPath
126127
}
128+
129+
// SetInstallCertsIni sets installCerts value to true in the config
130+
func SetInstallCertsIni(filename string, value string) error {
131+
cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename)
132+
if err != nil {
133+
return err
134+
}
135+
_, err = cfg.Section("").NewKey("installCerts", value)
136+
if err != nil {
137+
return err
138+
}
139+
err = cfg.SaveTo(filename)
140+
if err != nil {
141+
return err
142+
}
143+
return nil
144+
}

main.go

+2-18
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ func loop() {
227227
if value, err := valueIni(configPath.String()); err != nil {
228228
log.Panicf("config.ini cannot be parsed: %s", err)
229229
} else if !value && cert.PromptInstallCertsSafari() {
230-
err = modifyIni(configPath.String(), "true")
230+
err = config.SetInstallCertsIni(configPath.String(), "true")
231231
if err != nil {
232232
log.Panicf("config.ini cannot be parsed: %s", err)
233233
}
@@ -240,7 +240,7 @@ func loop() {
240240
cert.DeleteCertificates(certDir)
241241
}
242242
} else {
243-
err = modifyIni(configPath.String(), "false")
243+
err = config.SetInstallCertsIni(configPath.String(), "false")
244244
if err != nil {
245245
log.Panicf("config.ini cannot be parsed: %s", err)
246246
}
@@ -522,22 +522,6 @@ func parseIni(filename string) (args []string, err error) {
522522
return args, nil
523523
}
524524

525-
func modifyIni(filename string, value string) error {
526-
cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename)
527-
if err != nil {
528-
return err
529-
}
530-
_, err = cfg.Section("").NewKey("installCerts", value)
531-
if err != nil {
532-
return err
533-
}
534-
err = cfg.SaveTo(filename)
535-
if err != nil {
536-
return err
537-
}
538-
return nil
539-
}
540-
541525
func valueIni(filename string) (bool, error) {
542526
cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename)
543527
if err != nil {

systray/systray_real.go

+4
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ func (s *Systray) start() {
108108
log.Errorf("cannot install certificates something went wrong: %s", err)
109109
cert.DeleteCertificates(certDir)
110110
}
111+
err = config.SetInstallCertsIni(s.currentConfigFilePath.String(), "true")
112+
if err != nil {
113+
log.Errorf("cannot set installCerts value in config.ini: %s", err)
114+
}
111115
s.Restart()
112116
case <-mRemoveCerts.ClickedCh:
113117
err := cert.UninstallCertificates()

0 commit comments

Comments
 (0)