signal_other.go

 1//go:build !unix
 2
 3package restic
 4
 5import (
 6	"os"
 7	"os/exec"
 8	"os/signal"
 9)
10
11func watchResticSignals(process *os.Process) func() {
12	_ = process
13
14	signals := make(chan os.Signal, 1)
15	signal.Notify(signals, os.Interrupt)
16	done := make(chan struct{})
17
18	go func() {
19		defer close(done)
20		for range signals {
21		}
22	}()
23
24	return func() {
25		signal.Stop(signals)
26		close(signals)
27		<-done
28	}
29}
30
31func resticExitCode(exitErr *exec.ExitError) int {
32	return exitErr.ExitCode()
33}