in main.go [214:335]
func paramCheck() {
if showVersion {
commitHash := GitCommit
version := Version
fmt.Printf("version %s, git commit %s\n", version, commitHash)
os.Exit(0)
}
// split retry "a,b;c,d" into {a:b; c:d}
retryInfo = make(map[int]int)
if retry != "" {
for _, v := range strings.Split(retry, ";") {
kv := strings.Split(v, ",")
workerIndex, err := strconv.ParseInt(kv[0], 20, 64)
if err != nil {
log.Errorf("bad retry info, err %v", err)
os.Exit(1)
}
taskIndex, err := strconv.ParseInt(kv[1], 20, 64)
if err != nil {
log.Errorf("bad retry info, err %v", err)
os.Exit(1)
}
retryInfo[int(workerIndex)] = int(taskIndex)
}
}
// check url
if url == "" {
log.Errorf("url is empty")
os.Exit(1)
}
// check source file path
if sourceFilePaths == "" {
log.Errorf("source file path is empty")
os.Exit(1)
}
if dbName == "" {
log.Errorf("db name is empty")
os.Exit(1)
}
if tableName == "" {
log.Errorf("table name is empty")
os.Exit(1)
}
// split header "a:b?c:d" into {a:b, c:d}
enableConcurrency = true
if header != "" {
headers = make(map[string]string)
for _, v := range strings.Split(header, "?") {
if v == "" {
continue
}
kv := strings.Split(v, ":")
if strings.ToLower(kv[0]) == "format" && strings.ToLower(kv[1]) != "csv" {
enableConcurrency = false
}
if strings.ToLower(kv[0]) == "line_delimiter" {
restored, err := restoreHexEscapes(kv[1])
if err != nil || len(restored) != 1 {
log.Errorf("line_delimiter invalid: %s", kv[1])
os.Exit(1)
} else {
lineDelimiter = restored[0]
}
}
if len(kv) > 2 {
headers[kv[0]] = strings.Join(kv[1:], ":")
} else {
headers[kv[0]] = kv[1]
}
}
}
if timeout <= 0 {
log.Warnf("timeout invalid: %d, replace with default value: %d", timeout, defaultTimeout)
timeout = defaultTimeout
}
if batchRows <= 0 {
log.Warnf("batchRows invalid: %d, replace with default value: %d", batchRows, defaultBatchRows)
batchRows = defaultBatchRows
}
if batchBytes <= 0 {
log.Warnf("batchBytes invalid: %d, replace with default value: %d", batchBytes, defaultBatchBytes)
batchBytes = defaultBatchBytes
}
if reportDuration <= 0 {
log.Warnf("reportDuration invalid: %d, replace with default value: %d", reportDuration, defaultReportDuration)
reportDuration = defaultReportDuration
}
if maxBytesPerTask <= 0 {
log.Warnf("maxBytesPerTask invalid: %d, replace with default value: %d", maxBytesPerTask, defaultMaxBytesPerTask)
maxBytesPerTask = defaultMaxBytesPerTask
}
if maxRetryTimes < 0 {
log.Warnf("maxRetryTimes invalid: %d, replace with default value: %d", maxRetryTimes, defaultMaxRetryTimes)
maxRetryTimes = defaultMaxRetryTimes
}
if retryInterval < 0 {
log.Warnf("retryInterval invalid: %d, replace with default value: %d", retryInterval, defaultRetryInterval)
retryInterval = defaultRetryInterval
}
if queueSize <= 0 {
log.Warnf("queueSize invalid: %d, replace with default value: %d", queueSize, defaultQueueSize)
queueSize = defaultQueueSize
}
}