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
|
|
|
|
2015-03-19 19:30:55 +00:00
|
|
|
"github.com/github/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
|
|
|
}
|
|
|
|
}()
|
|
|
|
|
2014-06-03 15:08:58 +00:00
|
|
|
commands.Run()
|
2016-07-22 00:07:23 +00:00
|
|
|
once.Do(commands.Cleanup)
|
2013-09-23 00:34:53 +00:00
|
|
|
}
|