Files
tf_provider/TOOLS/yaml-generator/spec/spec.go
T
“Naeel” a9491e13ea refactor: extract all generators into independent TOOLS/ modules
Each generator is now a standalone Go module with its own go.mod:

TOOLS/
├── yaml-generator/       ← service_spec_gen (API → YAML)
├── resource-generator/   ← gen_v2 (YAML → Go resources)
├── docs-generator/       ← docs_template_gen_v2 (YAML → Markdown)
├── ops-generator/        ← ops_docs_gen (ops documentation)
└── bin/                  ← pre-built binaries

All scripts updated to use TOOLS/bin/* binaries.
Removed old universal_rebuild/tools/ and universal_rebuild/bin/.
2026-07-05 09:57:13 +04:00

34 lines
1.1 KiB
Go

// Package spec — построение YAML-спецификации сервиса.
package spec
import (
"fmt"
"path/filepath"
"strings"
"yaml-generator/types"
)
// DefaultOutputParams возвращает стандартный набор выходных параметров.
func DefaultOutputParams() []types.OutputParam {
return []types.OutputParam{
{Code: "state_params", Type: "map"},
{Code: "state_out", Type: "map"},
{Code: "state_params_flat", Type: "map"},
{Code: "state_out_flat", Type: "map"},
{Code: "vault_secrets", Type: "map", Sensitive: true},
{Code: "vault_url", Type: "string"},
{Code: "vault_user_path", Type: "string"},
{Code: "vault_fields", Type: "list"},
}
}
// ValidateOutputDir проверяет, что выходная директория не legacy resources_ops_yaml.
func ValidateOutputDir(path string) error {
base := strings.ToLower(strings.TrimSpace(filepath.Base(path)))
if base == "resources_ops_yaml" {
return fmt.Errorf("invalid output dir %q: use resources_yaml for unified service specs", path)
}
return nil
}