Files
diachron/master/main.go
Michael Wolf 30463b60a5 Use CLI flags instead of environment variables for master config
Replace env var parsing with Go's flag package:
- --watch (default: ../express)
- --workers (default: 1)
- --base-port (default: 3000)
- --port (default: 8080)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 17:31:08 -06:00

42 lines
968 B
Go

package main
import (
"flag"
"fmt"
"os"
"os/signal"
"syscall"
)
func main() {
watchDir := flag.String("watch", "../express", "directory to watch for changes")
workers := flag.Int("workers", 1, "number of worker processes")
basePort := flag.Int("base-port", 3000, "base port for worker processes")
listenPort := flag.Int("port", 8080, "port for the reverse proxy to listen on")
flag.Parse()
// Create worker pool
pool := NewWorkerPool()
// Setup signal handling
sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, os.Interrupt, syscall.SIGTERM)
fileChanges := make(chan FileChange, 10)
go watchFiles(*watchDir, fileChanges)
go runExpress(fileChanges, *workers, *basePort, pool)
// Start the reverse proxy
listenAddr := fmt.Sprintf(":%d", *listenPort)
go startProxy(listenAddr, pool)
// Wait for interrupt signal
<-sigCh
fmt.Println("\nReceived interrupt signal, shutting down...")
fmt.Println("All processes terminated cleanly")
}