func abortOnSignal( client concourse.Client, terminate <-chan os.Signal, build atc.Build, ) { <-terminate fmt.Fprintf(os.Stderr, "\naborting...\n") err := client.AbortBuild(strconv.Itoa(build.ID)) if err != nil { fmt.Fprintln(os.Stderr, "failed to abort:", err) return } // if told to terminate again, exit immediately <-terminate fmt.Fprintln(os.Stderr, "exiting immediately") os.Exit(2) }