53 lines
1.5 KiB
Go
53 lines
1.5 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
|
||
|
"github.com/pkg/errors"
|
||
|
"github.com/urfave/cli"
|
||
|
)
|
||
|
|
||
|
func getAllLabels(cli *cli.Context) (map[string]string, error) {
|
||
|
var labelValues []string
|
||
|
labels := make(map[string]string)
|
||
|
labelValues, labelErr := readKVStrings(cli.StringSlice("label-file"), cli.StringSlice("label"))
|
||
|
if labelErr != nil {
|
||
|
return labels, errors.Wrapf(labelErr, "unable to process labels from --label and label-file")
|
||
|
}
|
||
|
// Process KEY=VALUE stringslice in string map for WithLabels func
|
||
|
if len(labelValues) > 0 {
|
||
|
for _, i := range labelValues {
|
||
|
spliti := strings.Split(i, "=")
|
||
|
if len(spliti) > 1 {
|
||
|
return labels, errors.Errorf("labels must be in KEY=VALUE format: %s is invalid", i)
|
||
|
}
|
||
|
labels[spliti[0]] = spliti[1]
|
||
|
}
|
||
|
}
|
||
|
return labels, nil
|
||
|
}
|
||
|
|
||
|
func getAllEnvironmentVariables(cli *cli.Context) ([]string, error) {
|
||
|
env, err := readKVStrings(cli.StringSlice("env-file"), cli.StringSlice("env"))
|
||
|
if err != nil {
|
||
|
return []string{}, errors.Wrapf(err, "unable to process variables from --env and --env-file")
|
||
|
}
|
||
|
// Add default environment variables if nothing defined
|
||
|
if len(env) == 0 {
|
||
|
env = append(env, defaultEnvVariables...)
|
||
|
}
|
||
|
return env, nil
|
||
|
}
|
||
|
|
||
|
func convertStringSliceToMap(strSlice []string, delimiter string) (map[string]string, error) {
|
||
|
sysctl := make(map[string]string)
|
||
|
for _, inputSysctl := range strSlice {
|
||
|
values := strings.Split(inputSysctl, delimiter)
|
||
|
if len(values) < 2 {
|
||
|
return sysctl, errors.Errorf("%s in an invalid sysctl value", inputSysctl)
|
||
|
}
|
||
|
sysctl[values[0]] = values[1]
|
||
|
}
|
||
|
return sysctl, nil
|
||
|
}
|