mirror of
https://github.com/zix99/traefik-lazyload.git
synced 2025-12-21 21:33:09 +01:00
Handle signals, code cleanup, easier labels
This commit is contained in:
53
pkg/service/labels.go
Normal file
53
pkg/service/labels.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
"traefik-lazyload/pkg/config"
|
||||
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func labelOrDefault(ct *types.Container, sublabel, dflt string) (string, bool) {
|
||||
if val, ok := ct.Labels[config.SubLabel(sublabel)]; ok {
|
||||
return val, true
|
||||
}
|
||||
return dflt, false
|
||||
}
|
||||
|
||||
func labelOrDefaultArr(ct *types.Container, sublabel string) ([]string, bool) {
|
||||
if val, ok := ct.Labels[config.SubLabel(sublabel)]; ok {
|
||||
return strings.Split(val, ","), true
|
||||
}
|
||||
return []string{}, false
|
||||
}
|
||||
|
||||
func labelOrDefaultInt(ct *types.Container, sublabel string, dflt int) (int, bool) {
|
||||
s, ok := labelOrDefault(ct, sublabel, "")
|
||||
if !ok {
|
||||
return dflt, false
|
||||
}
|
||||
|
||||
if val, err := strconv.Atoi(s); err != nil {
|
||||
logrus.Warnf("Unable to parse %s on %s: %v. Using default of %d", sublabel, containerShort(ct), err, dflt)
|
||||
return dflt, false
|
||||
} else {
|
||||
return val, true
|
||||
}
|
||||
}
|
||||
|
||||
func labelOrDefaultDuration(ct *types.Container, sublabel string, dflt time.Duration) (time.Duration, bool) {
|
||||
s, ok := labelOrDefault(ct, sublabel, "")
|
||||
if !ok {
|
||||
return dflt, false
|
||||
}
|
||||
|
||||
if val, err := time.ParseDuration(s); err != nil {
|
||||
logrus.Warnf("Unable to parse %s on %s: %v. Using default of %s", sublabel, containerShort(ct), err, dflt.String())
|
||||
return dflt, false
|
||||
} else {
|
||||
return val, true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user