Refactor signal handling and Windows support

This commit drops webhook_windows.go in favor of simply pulling out the
signal handling code to separate files.
This commit is contained in:
Cameron Moore 2015-10-29 11:17:15 -05:00
parent 409b441c31
commit 1c319a7a08
4 changed files with 42 additions and 312 deletions

View file

@ -1,5 +1,3 @@
//+build !windows
package main
import (
@ -12,9 +10,7 @@ import (
"net/url"
"os"
"os/exec"
"os/signal"
"strings"
"syscall"
"github.com/adnanh/webhook/hook"
@ -61,12 +57,7 @@ func init() {
log.Println("version " + version + " starting")
// set os signal watcher
log.Printf("setting up os signal watcher\n")
signals = make(chan os.Signal, 1)
signal.Notify(signals, syscall.SIGUSR1)
go watchForSignals()
setupSignals()
// load and parse hooks
log.Printf("attempting to load hooks from %s\n", *hooksFilePath)
@ -285,21 +276,6 @@ func watchForFileChange() {
}
}
func watchForSignals() {
log.Println("os signal watcher ready")
for {
sig := <-signals
if sig == syscall.SIGUSR1 {
log.Println("caught USR1 signal")
reloadHooks()
} else {
log.Printf("caught unhandled signal %+v\n", sig)
}
}
}
// valuesToMap converts map[string][]string to a map[string]string object
func valuesToMap(values map[string][]string) map[string]interface{} {
ret := make(map[string]interface{})