grim/peacock
Clone
Summary
Browse
Changes
Graph
Get the server running with the basic static stuff
draft
2018-05-26, Gary Kramlich
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
()
}