fix: ToSnake acronym bug, migrate compare script to Gateway, YAML regen all stands
- ToSnake: fix acronym splitting (CPU, TTL, CA, API, VIP, AVI) - compare_yaml_vs_api.py: deck-api → lk-api-gateway - YAML regenerated from API for all 3 stands - Go resources regenerated - Providers rebuilt 3.0.6/5.0.5/2.0.6
This commit is contained in:
@@ -25,11 +25,22 @@ func ToCamel(s string) string {
|
||||
}
|
||||
|
||||
// ToSnake конвертирует CamelCase → snake_case.
|
||||
// Аббревиатуры (CPU, TTL, CA, API, VIP) сохраняются слитно: resourceCPU → resource_cpu.
|
||||
func ToSnake(s string) string {
|
||||
var out []rune
|
||||
for i, r := range s {
|
||||
runes := []rune(s)
|
||||
for i, r := range runes {
|
||||
if i > 0 && r >= 'A' && r <= 'Z' {
|
||||
out = append(out, '_')
|
||||
// Вставляем _ только если предыдущий символ — строчная буква
|
||||
// (переход из слова в аббревиатуру: resourceCPU → resource_cpu)
|
||||
// ИЛИ если следующий символ — строчная буква
|
||||
// (переход из аббревиатуры в слово: HTTPSProxy → https_proxy)
|
||||
prev := runes[i-1]
|
||||
if prev >= 'a' && prev <= 'z' {
|
||||
out = append(out, '_')
|
||||
} else if i+1 < len(runes) && runes[i+1] >= 'a' && runes[i+1] <= 'z' {
|
||||
out = append(out, '_')
|
||||
}
|
||||
}
|
||||
out = append(out, rune(strings.ToLower(string(r))[0]))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user