print error and include in txt log on crash; fix email migration

This commit is contained in:
Harvey Tindall 2021-08-25 18:10:06 +01:00
parent 5b319d6612
commit 1bfec54c93
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
2 changed files with 23 additions and 3 deletions

View File

@ -50,6 +50,10 @@ func Exit(err interface{}) {
log.Fatalf("Failed to load template: %v", err)
}
logCache := lineCache.String()
if err != nil {
fmt.Println(err)
logCache += "\n" + fmt.Sprint(err)
}
logCache += "\n" + string(debug.Stack())
sanitized := sanitizeLog(logCache)
data := map[string]interface{}{

View File

@ -90,11 +90,27 @@ func migrateEmailStorage(app *appContext) error {
}
newEmails := map[string]EmailAddress{}
for jfID, addr := range emails {
newEmails[jfID] = EmailAddress{
Addr: addr.(string),
Contact: true,
switch addr.(type) {
case string:
newEmails[jfID] = EmailAddress{
Addr: addr.(string),
Contact: true,
}
// In case email settings still persist after migration has already happened
case map[string]interface{}:
return nil
default:
return fmt.Errorf("Email address was type %T, not string: \"%+v\"\n", addr, addr)
}
}
config, err := ini.Load(app.configPath)
if err != nil {
return err
}
config.Section("email").Key("use_24h").SetValue("")
if err := config.SaveTo(app.configPath); err != nil {
return err
}
err = storeJSON(app.storage.emails_path+".bak", emails)
if err != nil {
return err