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/.
34 lines
1.1 KiB
Go
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
|
|
}
|