23cb8ea7e9
- Added `--throttle-query` param (when returns > 0, throttling applies) - Added `--critical-load`, similar to `--max-load` but implies panic and quit - Recoded *-load as `LoadMap` - More info on *-load throttle/panic - `printStatus()` now gets printing heuristic. Always shows up on interactive `"status"` - Fixed `change column` (aka rename) handling with quotes - Removed legacy `mysqlbinlog` parser code - Added tests
53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
/*
|
|
Copyright 2016 GitHub Inc.
|
|
See https://github.com/github/gh-ost/blob/master/LICENSE
|
|
*/
|
|
|
|
package base
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"regexp"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
prettifyDurationRegexp = regexp.MustCompile("([.][0-9]+)")
|
|
)
|
|
|
|
func PrettifyDurationOutput(d time.Duration) string {
|
|
if d < time.Second {
|
|
return "0s"
|
|
}
|
|
result := fmt.Sprintf("%s", d)
|
|
result = prettifyDurationRegexp.ReplaceAllString(result, "")
|
|
return result
|
|
}
|
|
|
|
func FileExists(fileName string) bool {
|
|
if _, err := os.Stat(fileName); err == nil {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// StringContainsAll returns true if `s` contains all non empty given `substrings`
|
|
// The function returns `false` if no non-empty arguments are given.
|
|
func StringContainsAll(s string, substrings ...string) bool {
|
|
nonEmptyStringsFound := false
|
|
for _, substring := range substrings {
|
|
if substring == "" {
|
|
continue
|
|
}
|
|
if strings.Contains(s, substring) {
|
|
nonEmptyStringsFound = true
|
|
} else {
|
|
// Immediate failure
|
|
return false
|
|
}
|
|
}
|
|
return nonEmptyStringsFound
|
|
}
|