nginx-proxy-manager/backend/internal/util/strings.go
2023-07-19 11:52:47 +10:00

42 lines
947 B
Go

package util
import (
"bytes"
"encoding/json"
"regexp"
"strings"
"unicode"
"npm/internal/logger"
)
// CleanupWhitespace will trim up and remove extra lines and stuff
func CleanupWhitespace(s string) string {
// Remove trailing whitespace from all lines
slices := strings.Split(s, "\n")
for idx := range slices {
slices[idx] = strings.TrimRightFunc(slices[idx], unicode.IsSpace)
}
// Output: [a b c]
result := strings.Join(slices, "\n")
// Remove empty lines
r1 := regexp.MustCompile("\n+")
result = r1.ReplaceAllString(result, "\n")
return result
}
// PrettyPrintJSON takes a string and as long as it's JSON,
// it will return a pretty printed and formatted version
func PrettyPrintJSON(s string) string {
byt := []byte(s)
var prettyJSON bytes.Buffer
if err := json.Indent(&prettyJSON, byt, "", " "); err != nil {
logger.Debug("Can't pretty print non-json string: %s", s)
return s
}
return prettyJSON.String()
}