Skip to content

Commit a8a1dc0

Browse files
authored
Merge pull request #24 from soulteary/feat/allow-disable-healthcheck
feat: allow disable healthcheck
2 parents 94fc6f1 + ccc967f commit a8a1dc0

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

config.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type Config struct {
2121
SetupDelay time.Duration // Delay between setup retries
2222
EnableFinder bool // Enable service finder
2323
SetupFinderInterval time.Duration // Interval for service finder
24+
EnableHealthCheck bool // Enable health check endpoint
2425
}
2526

2627
// ConfigProvider interface for dependency injection
@@ -96,6 +97,18 @@ func (p *DefaultConfigProvider) GetSetupDelay() time.Duration {
9697
return p.config.SetupDelay
9798
}
9899

100+
func (p *DefaultConfigProvider) GetEnableFinder() bool {
101+
return p.config.EnableFinder
102+
}
103+
104+
func (p *DefaultConfigProvider) GetSetupFinderInterval() time.Duration {
105+
return p.config.SetupFinderInterval
106+
}
107+
108+
func (p *DefaultConfigProvider) GetEnableHealthCheck() bool {
109+
return p.config.EnableHealthCheck
110+
}
111+
99112
// ConfigParser handles parsing configuration from various sources
100113
type ConfigParser struct{}
101114

@@ -119,6 +132,7 @@ func (cp *ConfigParser) ParseConfig() (*Config, error) {
119132
var setupDelaySeconds int
120133
var setupFinderEnabled bool
121134
var setupFinderInterval int
135+
var setupHealthCheck bool
122136

123137
flag.StringVar(&canPortsFlag, "can-ports", "", "Comma-separated list of CAN interfaces (e.g., can0,can1)")
124138
flag.StringVar(&serverPort, "port", "5260", "HTTP server port")
@@ -130,6 +144,7 @@ func (cp *ConfigParser) ParseConfig() (*Config, error) {
130144
flag.IntVar(&setupDelaySeconds, "setup-delay", 2, "Delay between setup retries (seconds)")
131145
flag.BoolVar(&setupFinderEnabled, "enable-finder", true, "Enable service finder")
132146
flag.IntVar(&setupFinderInterval, "finder-interval", 5, "Interval for service finder in seconds")
147+
flag.BoolVar(&setupHealthCheck, "enable-healthcheck", true, "Enable health check endpoint")
133148
flag.Parse()
134149

135150
// Environment variables (override command line)
@@ -187,6 +202,12 @@ func (cp *ConfigParser) ParseConfig() (*Config, error) {
187202
}
188203
}
189204

205+
if setupHealthCheck {
206+
config.EnableHealthCheck = true
207+
} else {
208+
config.EnableHealthCheck = false
209+
}
210+
190211
config.Port = serverPort
191212
config.AutoSetup = autoSetup
192213
config.Bitrate = bitrate

main.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,10 @@ func (s *Service) setupHTTPServer() {
258258
// Start starts the service
259259
func (s *Service) Start(ctx context.Context) error {
260260
// Start watchdog
261-
if err := s.watchdog.Start(ctx); err != nil {
262-
return fmt.Errorf("failed to start watchdog: %w", err)
261+
if s.config.EnableHealthCheck {
262+
if err := s.watchdog.Start(ctx); err != nil {
263+
return fmt.Errorf("failed to start watchdog: %w", err)
264+
}
263265
}
264266

265267
// Start Node Finder in a separate goroutine

0 commit comments

Comments
 (0)