mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2026-05-08 05:18:11 +00:00
6602b52f85
* feat: add support for oauth whitelist file (#817) * Merge branch 'main' into feat/oauth-whitelist-file * fix: fix conflicts * tests: use testify for testing --------- Co-authored-by: Stavros <steveiliop56@gmail.com>
69 lines
1.3 KiB
Go
69 lines
1.3 KiB
Go
package utils
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
func Capitalize(str string) string {
|
|
if len(str) == 0 {
|
|
return ""
|
|
}
|
|
return strings.ToUpper(string([]rune(str)[0])) + string([]rune(str)[1:])
|
|
}
|
|
|
|
func CoalesceToString(value any) string {
|
|
switch v := value.(type) {
|
|
case []any:
|
|
strs := make([]string, 0, len(v))
|
|
for _, item := range v {
|
|
if str, ok := item.(string); ok {
|
|
strs = append(strs, str)
|
|
continue
|
|
}
|
|
}
|
|
return strings.Join(strs, ",")
|
|
case string:
|
|
return v
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
|
|
func ParseNonEmptyLines(contents string) []string {
|
|
lines := make([]string, 0)
|
|
|
|
for line := range strings.SplitSeq(contents, "\n") {
|
|
lineTrimmed := strings.TrimSpace(line)
|
|
if lineTrimmed == "" {
|
|
continue
|
|
}
|
|
lines = append(lines, lineTrimmed)
|
|
}
|
|
|
|
return lines
|
|
}
|
|
|
|
func GetStringList(valuesCfg []string, valuesPath string) ([]string, error) {
|
|
values := make([]string, 0, len(valuesCfg))
|
|
|
|
for _, value := range valuesCfg {
|
|
valueTrimmed := strings.TrimSpace(value)
|
|
if valueTrimmed == "" {
|
|
continue
|
|
}
|
|
values = append(values, valueTrimmed)
|
|
}
|
|
|
|
if valuesPath == "" {
|
|
return values, nil
|
|
}
|
|
|
|
contents, err := ReadFile(valuesPath)
|
|
if err != nil {
|
|
return []string{}, err
|
|
}
|
|
|
|
values = append(values, ParseNonEmptyLines(contents)...)
|
|
return values, nil
|
|
}
|