Beispiel #1
0
// Any cleanup tasks on shutdown could happen here.
func handleCtrlC(c chan os.Signal) {
	sig := <-c
	message := fmt.Sprintf("Received '%s' - shutting down.", sig)
	cmd.Log(message, "info")
	fmt.Printf("%s\n", message)
	os.Exit(0)
}
Beispiel #2
0
func main() {
	logwriter, e := syslog.New(syslog.LOG_NOTICE, programName)
	if e == nil {
		log.SetOutput(logwriter)
	}
	cmd.Log(fmt.Sprintf("%s version: %s", programName, Version), "info")

	args := os.Args[1:]
	for _, arg := range args {
		if arg == "-v" || arg == "--version" {
			fmt.Printf("Version  : %s\nRevision : %s\nDate     : %s\nGo       : %s\n", Version, GitCommit, CompileDate, GoVersion)
			os.Exit(0)
		}
	}
	// Setup nice shutdown with CTRL-C.
	c := make(chan os.Signal)
	signal.Notify(c, os.Interrupt, syscall.SIGTERM)
	go handleCtrlC(c)

	// Listen for expvar if we have GOSHE_DEBUG set.
	if os.Getenv("GOSHE_DEBUG") != "" {
		go setupExpvarHTTP()
	}

	cmd.RootCmd.Execute()
}