Implement #5: SIGUSR1
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
#5
This commit is contained in:
parent
2008c9f999
commit
6ad260078e
24
godoor.go
24
godoor.go
@ -134,7 +134,7 @@ func main() {
|
||||
godoorBuildInfo.WithLabelValues(Version, Commit).Set(1)
|
||||
|
||||
go func() {
|
||||
setup()
|
||||
setup(ctx)
|
||||
}()
|
||||
|
||||
<-ctx.Done()
|
||||
@ -188,7 +188,7 @@ func loadConfig() {
|
||||
}
|
||||
}
|
||||
|
||||
func setup() {
|
||||
func setup(ctx context.Context) {
|
||||
log.Println("Started Setup")
|
||||
|
||||
if config.mock {
|
||||
@ -239,6 +239,8 @@ func setup() {
|
||||
}
|
||||
}()
|
||||
|
||||
go listenSig1(ctx, wiegand)
|
||||
|
||||
log.Println("Initialized longpoll event loop")
|
||||
|
||||
go cardRunner(wiegand)
|
||||
@ -246,6 +248,24 @@ func setup() {
|
||||
log.Println("Setup completed")
|
||||
}
|
||||
|
||||
func listenSig1(ctx context.Context, wiegand Wiegand) {
|
||||
usrSig := make(chan os.Signal)
|
||||
signal.Notify(usrSig, syscall.SIGUSR1)
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-usrSig:
|
||||
err := OpenAndCloseDoor(wiegand)
|
||||
log.Printf("Emergecy opening door as prompted by SIGUSR1")
|
||||
if err != nil {
|
||||
log.Printf("opening door: %v", err)
|
||||
}
|
||||
case <-ctx.Done():
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func runHttpServer() {
|
||||
http.Handle("/metrics", promhttp.Handler())
|
||||
log.Printf("Running prometheus metrics on http://%s/metrics", config.prometheusMetricsBind)
|
||||
|
Loading…
Reference in New Issue
Block a user