Files
sslh-multiplex-lab/internal/sslh/generator.go
2026-01-29 00:03:02 +00:00

41 lines
925 B
Go

package sslh
import (
"fmt"
"os"
"path/filepath"
"sslh-multiplex-lab/internal/services"
)
func GenerateConfigFile(services []services.Service, serverIP, domain, outputPath string) error {
config, err := GenerateConfig(services, serverIP, domain)
if err != nil {
return fmt.Errorf("failed to generate config: %w", err)
}
configContent := config.ToLibConfig()
if err := os.MkdirAll(filepath.Dir(outputPath), 0755); err != nil {
return fmt.Errorf("failed to create config directory: %w", err)
}
if err := os.WriteFile(outputPath, []byte(configContent), 0644); err != nil {
return fmt.Errorf("failed to write config file: %w", err)
}
return nil
}
func ValidateConfig(config *Config) error {
if len(config.Listen) == 0 {
return fmt.Errorf("at least one listen address is required")
}
if len(config.Protocols) == 0 {
return fmt.Errorf("at least one protocol route is required")
}
return nil
}