grim/peacock

13d711f5f347
Get the server running with the basic static stuff
package main
import (
"fmt"
"os"
"os/signal"
"runtime/debug"
"syscall"
"github.com/aphistic/gomol"
"bitbucket.org/rw_grim/peacock/logging"
"bitbucket.org/rw_grim/peacock/server"
)
func gomain() int {
err := logging.Start()
if err != nil {
fmt.Printf("error: %s\n", err)
return 1
}
defer logging.Stop()
// setup a signal channel
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
// setup the error channel
errChan := make(chan error, 10)
// run the api
go func() {
srv := server.New(errChan)
defer srv.Stop()
srv.Start()
}()
for {
select {
case err := <-errChan:
if err != nil {
gomol.Fatalf("error: %s", err)
return 1
}
case s := <-signalChan:
gomol.Warnf("Captured %v. Exiting...", s)
return 0
}
}
}
func main() {
exitCode := 0
defer func() {
if r := recover(); r != nil {
fmt.Printf("panic: %s\n%s\n", r, debug.Stack())
}
os.Exit(exitCode)
}()
exitCode = gomain()
}