()
| 18 | ) |
| 19 | |
| 20 | func initSettings() { |
| 21 | initialSettingItems := InitialSettings() |
| 22 | isActive := func(key string) bool { |
| 23 | for _, item := range initialSettingItems { |
| 24 | if item.Key == key { |
| 25 | return true |
| 26 | } |
| 27 | } |
| 28 | return false |
| 29 | } |
| 30 | // check deprecated |
| 31 | settings, err := op.GetSettingItems() |
| 32 | if err != nil { |
| 33 | utils.Log.Fatalf("failed get settings: %+v", err) |
| 34 | } |
| 35 | settingMap := map[string]*model.SettingItem{} |
| 36 | for _, v := range settings { |
| 37 | if v.Key == "" { |
| 38 | err := db.DeleteSettingItemByKey(v.Key) |
| 39 | if err != nil { |
| 40 | utils.Log.Errorf("failed delete setting with empty key: %+v", err) |
| 41 | } |
| 42 | continue |
| 43 | } |
| 44 | if !isActive(v.Key) && v.Flag != model.DEPRECATED { |
| 45 | v.Flag = model.DEPRECATED |
| 46 | err = op.SaveSettingItem(&v) |
| 47 | if err != nil { |
| 48 | utils.Log.Fatalf("failed save setting: %+v", err) |
| 49 | } |
| 50 | } |
| 51 | settingMap[v.Key] = &v |
| 52 | } |
| 53 | op.MigrationSettingItems = map[string]op.MigrationValueItem{} |
| 54 | // create or save setting |
| 55 | var saveItems []model.SettingItem |
| 56 | for i := range initialSettingItems { |
| 57 | item := &initialSettingItems[i] |
| 58 | item.Index = uint(i) |
| 59 | migrationValue := item.MigrationValue |
| 60 | if len(migrationValue) > 0 { |
| 61 | op.MigrationSettingItems[item.Key] = op.MigrationValueItem{MigrationValue: item.MigrationValue, Value: item.Value} |
| 62 | item.MigrationValue = "" |
| 63 | } |
| 64 | // err |
| 65 | stored, ok := settingMap[item.Key] |
| 66 | if !ok { |
| 67 | stored, err = op.GetSettingItemByKey(item.Key) |
| 68 | if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { |
| 69 | utils.Log.Fatalf("failed get setting: %+v", err) |
| 70 | continue |
| 71 | } |
| 72 | } |
| 73 | if item.Key != conf.VERSION && stored != nil && |
| 74 | (len(migrationValue) == 0 || stored.Value != migrationValue) { |
| 75 | item.Value = stored.Value |
| 76 | } |
| 77 | _, err = op.HandleSettingItemHook(item) |
no test coverage detected