mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## 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`.
43 lines
1.1 KiB
Go
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
|
|
}
|