This repository has been archived on 2024-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
adlin/checker/main.go

51 lines
947 B
Go

package main
import (
"flag"
"log"
"os"
"os/signal"
"syscall"
"time"
"git.nemunai.re/srs/adlin/libadlin"
)
func main() {
var dsn = flag.String("dsn", adlin.DSNGenerator(), "DSN to connect to the MySQL server")
flag.BoolVar(&verbose, "verbose", verbose, "Enable verbose mode")
flag.Parse()
// Initialize contents
log.Println("Opening database...")
if err := adlin.DBInit(*dsn); err != nil {
log.Fatal("Cannot open the database: ", err)
}
defer adlin.DBClose()
log.Println("Creating database...")
if err := adlin.DBCreate(); err != nil {
log.Fatal("Cannot create database: ", err)
}
// Prepare graceful shutdown
interrupt := make(chan os.Signal, 1)
signal.Notify(interrupt, os.Interrupt, syscall.SIGTERM)
ticker := time.NewTicker(30 * time.Second)
defer ticker.Stop()
// Launch checker
studentsChecker()
loop:
for {
select {
case <-interrupt:
break loop
case <-ticker.C:
studentsChecker()
}
}
}