2017-12-05 08:49:14 +00:00
|
|
|
//go:generate goversioninfo
|
2016-12-14 21:52:34 +00:00
|
|
|
|
2013-09-23 00:34:53 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2015-10-21 22:23:40 +00:00
|
|
|
"fmt"
|
2015-10-21 21:47:46 +00:00
|
|
|
"os"
|
|
|
|
"os/signal"
|
|
|
|
"sync"
|
2015-10-22 14:55:53 +00:00
|
|
|
"syscall"
|
2015-10-21 21:47:46 +00:00
|
|
|
|
2016-11-15 17:01:18 +00:00
|
|
|
"github.com/git-lfs/git-lfs/commands"
|
2013-09-23 00:34:53 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
2015-10-21 21:47:46 +00:00
|
|
|
c := make(chan os.Signal)
|
2015-10-22 14:55:53 +00:00
|
|
|
signal.Notify(c, os.Interrupt, os.Kill)
|
2015-10-21 21:47:46 +00:00
|
|
|
|
|
|
|
var once sync.Once
|
|
|
|
|
|
|
|
go func() {
|
|
|
|
for {
|
2015-10-21 22:23:40 +00:00
|
|
|
sig := <-c
|
2016-07-22 00:07:23 +00:00
|
|
|
once.Do(commands.Cleanup)
|
2015-10-22 14:55:53 +00:00
|
|
|
fmt.Fprintf(os.Stderr, "\nExiting because of %q signal.\n", sig)
|
|
|
|
|
2015-10-22 16:03:27 +00:00
|
|
|
exitCode := 1
|
2015-10-22 14:55:53 +00:00
|
|
|
if sysSig, ok := sig.(syscall.Signal); ok {
|
|
|
|
exitCode = int(sysSig)
|
2015-10-21 22:23:40 +00:00
|
|
|
}
|
2015-10-22 14:55:53 +00:00
|
|
|
os.Exit(exitCode + 128)
|
2015-10-21 21:47:46 +00:00
|
|
|
}
|
|
|
|
}()
|
|
|
|
|
2018-04-12 19:16:07 +00:00
|
|
|
code := commands.Run()
|
2016-07-22 00:07:23 +00:00
|
|
|
once.Do(commands.Cleanup)
|
2018-04-12 19:16:07 +00:00
|
|
|
os.Exit(code)
|
2013-09-23 00:34:53 +00:00
|
|
|
}
|