Imported Upstream version 2.3.0
[scm/test.git] / git-lfs.go
1 //go:generate goversioninfo -icon=script/windows-installer/git-lfs-logo.ico
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         commands.Run()
36         once.Do(commands.Cleanup)
37 }