Files
tasks/common/util/proto.go
Alex ShtinandGitHub 8e8f1b0f7c Remove license header from every file (#7689)
## What changed?
<!-- Describe what has changed in this PR -->
Remove license header from every file. Because it is really hard to
follow in this PR here is the summary:
1. License header is removed from all `.go` and `.proto` files
:fireworks::fireworks:🎆.
2. `LICENSE` file in the root directory has only Temporal and Uber
copyrights.
3. 5 other `LICENSE` files added to the packages which have copyrights
different from Temporal and Uber: Datadog, Xargin, "Mat Ryer, Tyler
Bunnell and contributors".
4. `license_file` flag is removed from all code generation tools.
5. `copyright_file` flag is removed from `go:generate mockgen`
directive.
6. All copyright related targets are removed from `Makefile`.
7. Updated Temporal copyright year to 2025 everywhere.

## Why?
<!-- Tell your future self why have you made these changes -->
I double checked with legal department that it is not needed to have
license header in every file. One file per repo is enough. I put all
copyrights to the root `LICENSE` file and removed header from all other
files. Also updated tools and `Makefile`.
2025-05-01 18:50:21 -07:00

43 lines
1.1 KiB
Go

package util
import (
"strings"
"golang.org/x/text/cases"
"golang.org/x/text/language"
"google.golang.org/protobuf/types/known/fieldmaskpb"
)
func ConvertPathToCamel(input string) []string {
pathParts := strings.Split(input, ".")
for i, path := range pathParts {
// Split by "_" and convert each word to Title Case (CamelCase)
words := strings.Split(path, "_")
snakeCase := len(words) > 1
for j, word := range words {
if snakeCase && j > 0 {
words[j] = cases.Title(language.Und).String(strings.ToLower(word))
} else {
// lowercase the first letter
words[j] = strings.ToLower(word[:1]) + word[1:]
}
}
// Join the words into a CamelCase substring
pathParts[i] = strings.Join(words, "")
}
// Join all CamelCase substrings back with "."
return pathParts
}
func ParseFieldMask(mask *fieldmaskpb.FieldMask) map[string]struct{} {
updateFields := make(map[string]struct{})
for _, path := range mask.Paths {
pathParts := ConvertPathToCamel(path)
jsonPath := strings.Join(pathParts, ".")
updateFields[jsonPath] = struct{}{}
}
return updateFields
}