Files
overlord/Overlord-Client/cmd/agent/mutex/mutex.go
T
2026-03-05 00:04:26 -06:00

34 lines
660 B
Go

package mutex
import (
"fmt"
"strings"
)
const maxMutexLength = 64
func sanitizeName(name string) (string, error) {
trimmed := strings.TrimSpace(name)
if trimmed == "" {
return "", fmt.Errorf("empty mutex name")
}
var builder strings.Builder
for _, r := range trimmed {
if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') || (r >= '0' && r <= '9') || r == '-' || r == '_' || r == '.' {
builder.WriteRune(r)
}
}
sanitized := builder.String()
if sanitized == "" {
return "", fmt.Errorf("mutex name has no valid characters")
}
if len(sanitized) > maxMutexLength {
sanitized = sanitized[:maxMutexLength]
}
return sanitized, nil
}