github.com/2lambda123/git-lfs@v2.5.2+incompatible/git-lfs.go (about) 1 //go:generate goversioninfo 2 3 package main 4 5 import ( 6 "fmt" 7 "os" 8 "os/signal" 9 "sync" 10 "syscall" 11 12 "github.com/git-lfs/git-lfs/commands" 13 ) 14 15 func main() { 16 c := make(chan os.Signal) 17 signal.Notify(c, os.Interrupt, os.Kill) 18 19 var once sync.Once 20 21 go func() { 22 for { 23 sig := <-c 24 once.Do(commands.Cleanup) 25 fmt.Fprintf(os.Stderr, "\nExiting because of %q signal.\n", sig) 26 27 exitCode := 1 28 if sysSig, ok := sig.(syscall.Signal); ok { 29 exitCode = int(sysSig) 30 } 31 os.Exit(exitCode + 128) 32 } 33 }() 34 35 code := commands.Run() 36 once.Do(commands.Cleanup) 37 os.Exit(code) 38 }