|
- package main
-
- import (
- "flag"
- "fmt"
- "log"
- "os"
- "os/signal"
- "syscall"
- "votes/http"
- "votes/storage"
- )
-
- func main() {
- var l string
- flag.StringVar(&l, "l", "127.0.0.1:8080", "Listen")
- flag.Parse()
-
- if err := storage.Init(); err != nil {
- _, _ = fmt.Fprintf(os.Stderr, "error while reading entries\n")
- os.Exit(1)
- }
-
- signal.Ignore(syscall.SIGHUP)
- c := make(chan os.Signal)
- signal.Notify(c, syscall.SIGTERM, syscall.SIGINT)
- go listenExit(c)
-
- _ = http.Start(l)
- }
-
- func listenExit(c chan os.Signal) {
- _ = <-c
- log.Printf("Saving results...\n")
- if err := storage.Save(); err != nil {
- log.Printf("error saving results: %s", err)
- }
- os.Exit(0)
- }
|