44 lines
		
	
	
		
			820 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			820 B
		
	
	
	
		
			Go
		
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"os"
 | |
| 	"os/signal"
 | |
| 	"syscall"
 | |
| 
 | |
| 	"github.com/helmfile/helmfile/cmd"
 | |
| 	"github.com/helmfile/helmfile/pkg/app"
 | |
| 	"github.com/helmfile/helmfile/pkg/config"
 | |
| 	"github.com/helmfile/helmfile/pkg/errors"
 | |
| )
 | |
| 
 | |
| func main() {
 | |
| 	var sig os.Signal
 | |
| 	sigs := make(chan os.Signal, 1)
 | |
| 	signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
 | |
| 
 | |
| 	go func() {
 | |
| 		sig = <-sigs
 | |
| 	}()
 | |
| 
 | |
| 	globalConfig := new(config.GlobalOptions)
 | |
| 	rootCmd, err := cmd.NewRootCmd(globalConfig)
 | |
| 	errors.HandleExitCoder(err)
 | |
| 
 | |
| 	if err := rootCmd.Execute(); err != nil {
 | |
| 		if sig != nil {
 | |
| 			fmt.Fprintln(os.Stderr, err)
 | |
| 			app.CleanWaitGroup.Wait()
 | |
| 
 | |
| 			// See http://tldp.org/LDP/abs/html/exitcodes.html
 | |
| 			switch sig {
 | |
| 			case syscall.SIGINT:
 | |
| 				os.Exit(130)
 | |
| 			case syscall.SIGTERM:
 | |
| 				os.Exit(143)
 | |
| 			}
 | |
| 		}
 | |
| 		errors.HandleExitCoder(err)
 | |
| 	}
 | |
| }
 |