Files
mq/services/examples/json-engine/main.go
2025-09-18 13:36:24 +05:45

55 lines
1.2 KiB
Go

package main
import (
"encoding/json"
"flag"
"fmt"
"io/ioutil"
"log"
"os"
)
func loadConfiguration(configPath string) (*AppConfiguration, error) {
data, err := ioutil.ReadFile(configPath)
if err != nil {
return nil, fmt.Errorf("failed to read config file: %v", err)
}
var config AppConfiguration
if err := json.Unmarshal(data, &config); err != nil {
return nil, fmt.Errorf("failed to parse JSON config: %v", err)
}
return &config, nil
}
func main() {
// Parse command line flags
configPath := flag.String("config", "sms-app.json", "Path to JSON configuration file")
flag.Parse()
// If positional args provided, use the first one
if len(os.Args) > 1 && !flag.Parsed() {
*configPath = os.Args[1]
}
// Load configuration first
config, err := loadConfiguration(*configPath)
if err != nil {
log.Fatalf("Failed to load configuration: %v", err)
}
// Create JSON engine with configuration
engine := NewJSONEngine(config)
// Compile configuration
if err := engine.Compile(); err != nil {
log.Fatalf("Failed to compile configuration: %v", err)
}
// Start server
if err := engine.Start(); err != nil {
log.Fatalf("Failed to start server: %v", err)
}
}