35 lines
573 B
Go
35 lines
573 B
Go
package cmd
|
|
|
|
import (
|
|
"os"
|
|
"os/signal"
|
|
"sync"
|
|
"syscall"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func init() {
|
|
var testCmd = &cobra.Command{
|
|
Use: "test",
|
|
Short: "For testing stuff",
|
|
Run: test,
|
|
}
|
|
RootCmd.AddCommand(testCmd)
|
|
}
|
|
|
|
func test(cmd *cobra.Command, args []string) {
|
|
var wg sync.WaitGroup
|
|
c := make(chan os.Signal, 1)
|
|
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
|
|
wg.Add(1)
|
|
go func() {
|
|
defer wg.Done()
|
|
<-c
|
|
log.Println("got signal")
|
|
}()
|
|
log.Println("waiting for ctrl+c")
|
|
wg.Wait()
|
|
log.Println("done waiting")
|
|
}
|