mirror of
https://github.com/stakater/Reloader.git
synced 2026-03-02 17:30:19 +00:00
60 lines
1.2 KiB
Go
60 lines
1.2 KiB
Go
package util
|
|
|
|
import (
|
|
"bytes"
|
|
"sort"
|
|
"strings"
|
|
|
|
"github.com/stakater/Reloader/internal/pkg/crypto"
|
|
)
|
|
|
|
// ConvertToEnvVarName converts the given text into a usable env var
|
|
// removing any special chars with '_' and transforming text to upper case
|
|
func ConvertToEnvVarName(text string) string {
|
|
var buffer bytes.Buffer
|
|
upper := strings.ToUpper(text)
|
|
lastCharValid := false
|
|
for i := 0; i < len(upper); i++ {
|
|
ch := upper[i]
|
|
if (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9') {
|
|
buffer.WriteString(string(ch))
|
|
lastCharValid = true
|
|
} else {
|
|
if lastCharValid {
|
|
buffer.WriteString("_")
|
|
}
|
|
lastCharValid = false
|
|
}
|
|
}
|
|
return buffer.String()
|
|
}
|
|
|
|
func GetSHAfromConfigmap(data map[string]string) string {
|
|
values := []string{}
|
|
for k, v := range data {
|
|
values = append(values, k+"="+v)
|
|
}
|
|
sort.Strings(values)
|
|
return crypto.GenerateSHA(strings.Join(values, ";"))
|
|
}
|
|
|
|
func GetSHAfromSecret(data map[string][]byte) string {
|
|
values := []string{}
|
|
for k, v := range data {
|
|
values = append(values, k+"="+string(v[:]))
|
|
}
|
|
sort.Strings(values)
|
|
return crypto.GenerateSHA(strings.Join(values, ";"))
|
|
}
|
|
|
|
type List []string
|
|
|
|
func (l *List) Contains(s string) bool {
|
|
for _, v := range *l {
|
|
if v == s {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|