Skip to content
Snippets Groups Projects
Select Git revision
  • 9abc425a97c62b82d446a678c3527531f05c83c6
  • main default protected
  • devcontainer-support
  • print-signal
  • v0.0.6
  • v0.0.5
  • v0.0.4
  • v0.0.3
  • v0.0.2
  • v0.0.1
10 results

main.go

Blame
  • Ophestra Umiker's avatar
    Ophestra authored
    Prevent application from dying on some container tools.
    
    Signed-off-by: default avatarOphestra Umiker <cat@ophivana.moe>
    a270ca91
    History
    main.go 616 B
    package main
    
    import (
    	"log"
    	"os"
    	"os/signal"
    	"syscall"
    
    	"github.com/syndtr/goleveldb/leveldb"
    )
    
    func main() {
    	var db *leveldb.DB
    
    	if d, err := leveldb.OpenFile(conf[dbPath], nil); err != nil {
    		log.Fatalf("cannot open database %q: %v", conf[dbPath], err)
    	} else {
    		db = d
    	}
    	defer func() {
    		if err := db.Close(); err != nil {
    			log.Printf("cannot close database %q: %v", conf[dbPath], err)
    		}
    	}()
    
    	sig := make(chan os.Signal, 1)
    	signal.Notify(sig, os.Interrupt, syscall.SIGTERM)
    
    	if err := serve(sig, db); err != nil {
    		log.Printf("cannot serve: %v", err)
    	}
    
    	log.Println("application exit")
    }