-
Notifications
You must be signed in to change notification settings - Fork 278
/
config.go
58 lines (50 loc) · 2.65 KB
/
config.go
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package undo
import (
"flag"
)
var (
UndoConfig Config
)
func InitUndoConfig(cfg Config) {
UndoConfig = cfg
}
type CompressConfig struct {
Enable bool `yaml:"enable" json:"enable,omitempty" koanf:"enable"`
Type string `yaml:"type" json:"type,omitempty" koanf:"type"`
Threshold string `yaml:"threshold" json:"threshold,omitempty" koanf:"threshold"`
}
type Config struct {
DataValidation bool `yaml:"data-validation" json:"data-validation,omitempty" koanf:"data-validation"`
LogSerialization string `yaml:"log-serialization" json:"log-serialization,omitempty" koanf:"log-serialization"`
LogTable string `yaml:"log-table" json:"log-table,omitempty" koanf:"log-table"`
OnlyCareUpdateColumns bool `yaml:"only-care-update-columns" json:"only-care-update-columns,omitempty" koanf:"only-care-update-columns"`
CompressConfig CompressConfig `yaml:"compress" json:"compress,omitempty" koanf:"compress"`
}
func (u *Config) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
f.BoolVar(&u.DataValidation, prefix+".data-validation", true, "Judge whether the before image and after image are the same,If it is the same, undo will not be recorded")
f.StringVar(&u.LogSerialization, prefix+".log-serialization", "jackson", "Serialization method.")
f.StringVar(&u.LogTable, prefix+".log-table", "undo_log", "undo log table name.")
f.BoolVar(&u.OnlyCareUpdateColumns, prefix+".only-care-update-columns", true, "The switch for degrade check.")
u.CompressConfig.RegisterFlagsWithPrefix(prefix+".compress", f)
}
func (c *CompressConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
f.BoolVar(&c.Enable, prefix+".enable", true, "Whether compression is required.")
f.StringVar(&c.Type, prefix+".type", "zip", "Compression type")
f.StringVar(&c.Threshold, prefix+".threshold", "64k", "Compression threshold")
}