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>
This commit is contained in:
@@ -1,30 +1,20 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"strconv"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func main() {
|
||||
watchedDir := os.Getenv("WATCHED_DIR")
|
||||
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")
|
||||
|
||||
numChildProcesses := 1
|
||||
if n, err := strconv.Atoi(os.Getenv("NUM_CHILD_PROCESSES")); err == nil && n > 0 {
|
||||
numChildProcesses = n
|
||||
}
|
||||
|
||||
basePort := 3000
|
||||
if p, err := strconv.Atoi(os.Getenv("BASE_PORT")); err == nil && p > 0 {
|
||||
basePort = p
|
||||
}
|
||||
|
||||
listenPort := 8080
|
||||
if p, err := strconv.Atoi(os.Getenv("LISTEN_PORT")); err == nil && p > 0 {
|
||||
listenPort = p
|
||||
}
|
||||
flag.Parse()
|
||||
|
||||
// Create worker pool
|
||||
pool := NewWorkerPool()
|
||||
@@ -35,12 +25,12 @@ func main() {
|
||||
|
||||
fileChanges := make(chan FileChange, 10)
|
||||
|
||||
go watchFiles(watchedDir, fileChanges)
|
||||
go watchFiles(*watchDir, fileChanges)
|
||||
|
||||
go runExpress(fileChanges, numChildProcesses, basePort, pool)
|
||||
go runExpress(fileChanges, *workers, *basePort, pool)
|
||||
|
||||
// Start the reverse proxy
|
||||
listenAddr := fmt.Sprintf(":%d", listenPort)
|
||||
listenAddr := fmt.Sprintf(":%d", *listenPort)
|
||||
go startProxy(listenAddr, pool)
|
||||
|
||||
// Wait for interrupt signal
|
||||
|
||||
Reference in New Issue
Block a user