| 59 | } |
| 60 | |
| 61 | func Initialize(opts *InitOptions) error { |
| 62 | content, err := loadAndProcessTemplates(opts) |
| 63 | if err != nil { |
| 64 | return fmt.Errorf("failed to process templates: %w", err) |
| 65 | } |
| 66 | |
| 67 | files := make(map[string]string) |
| 68 | fileNameBase := sanitizeName(getPolicyName(opts.Name)) |
| 69 | |
| 70 | if opts.Embedded { |
| 71 | files[fileNameBase+".yaml"] = content.YAML |
| 72 | } else { |
| 73 | files[fileNameBase+".yaml"] = content.YAML |
| 74 | files[fileNameBase+".rego"] = content.Rego |
| 75 | } |
| 76 | |
| 77 | return writeFiles(opts.Directory, files, opts.Force) |
| 78 | } |
| 79 | |
| 80 | func getPolicyName(name string) string { |
| 81 | if name == "" { |