forked from eripa/prometheus-zfs
-
Notifications
You must be signed in to change notification settings - Fork 1
/
utils.go
39 lines (35 loc) · 777 Bytes
/
utils.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
package main
import (
"strings"
"strconv"
)
func substringInSlice(str string, list []string) bool {
for _, v := range list {
if strings.Contains(str, v) {
return true
}
}
return false
}
func decodeSuffix(str string) int64 {
var mul byte
var num float64
mulindex := strings.IndexAny(str, "KMGT")
if (mulindex != -1) {
mul = str[mulindex]
str = strings.TrimRight(str, "KMGT")
}
num, _ = strconv.ParseFloat(str, 64)
switch string(mul) {
case "K":
return int64(num * 1000)
case "M":
return int64(num * 1000 * 1000)
case "G":
return int64(num * 1000 * 1000 * 1000)
case "T":
return int64(num * 1000 * 1000 * 1000 * 1000)
default:
return int64(num)
}
}