Reorganise a little to move the server into it's own directory

This commit is contained in:
Marc Di Luzio 2020-06-05 17:15:25 +01:00
parent aa2ecace89
commit 5a2d35aca8
5 changed files with 17 additions and 3 deletions

View file

@ -0,0 +1,11 @@
FROM golang:latest
LABEL maintainer="Marc Di Luzio <marc.diluzio@gmail.com>"
WORKDIR /app
COPY . .
RUN go mod download
RUN go build -o rove-server -ldflags="-X 'github.com/mdiluz/rove/pkg/version.Version=$(git describe --always --long --dirty --tags)'" cmd/rove-server/main.go
CMD [ "./rove-server" ]

64
cmd/rove-server/main.go Normal file
View file

@ -0,0 +1,64 @@
package main
import (
"flag"
"fmt"
"os"
"os/signal"
"syscall"
"github.com/mdiluz/rove/pkg/persistence"
"github.com/mdiluz/rove/pkg/server"
"github.com/mdiluz/rove/pkg/version"
)
var ver = flag.Bool("version", false, "Display version number")
var port = flag.Int("port", 8080, "The port to host on")
var data = flag.String("data", os.TempDir(), "Directory to store persistant data")
func main() {
flag.Parse()
// Print the version if requested
if *ver {
fmt.Println(version.Version)
os.Exit(0)
}
fmt.Printf("Initialising version %s...\n", version.Version)
// Set the persistence path
persistence.SetPath(*data)
// Create the server data
s := server.NewServer(
server.OptionPort(*port),
server.OptionPersistentData())
// Initialise the server
if err := s.Initialise(); err != nil {
panic(err)
}
// Set up the close handler
c := make(chan os.Signal)
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
go func() {
<-c
fmt.Println("SIGTERM recieved, exiting...")
if err := s.Close(); err != nil {
panic(err)
}
os.Exit(0)
}()
fmt.Println("Running...")
// Run the server
s.Run()
// Close the server
if err := s.Close(); err != nil {
panic(err)
}
}