Remove signalmap, use unix.SignalNum

Since [1], x/sys/unix has a function to convert signal name
to a number. Let's use it and drop home-grown signal map.

While at it, add a test case.

[1] https://github.com/golang/sys/commit/d455e41777fca6e8a5a79e34a14b8368bc11d9ba

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
Kir Kolyshkin
2020-03-16 19:58:46 -07:00
parent 525b9f311c
commit 0e062a78ae
3 changed files with 7 additions and 94 deletions
+7 -2
View File
@@ -9,6 +9,7 @@ import (
"syscall"
"github.com/urfave/cli"
"golang.org/x/sys/unix"
)
var killCommand = cli.Command{
@@ -60,8 +61,12 @@ func parseSignal(rawSignal string) (syscall.Signal, error) {
if err == nil {
return syscall.Signal(s), nil
}
signal, ok := signalMap[strings.TrimPrefix(strings.ToUpper(rawSignal), "SIG")]
if !ok {
sig := strings.ToUpper(rawSignal)
if !strings.HasPrefix(sig, "SIG") {
sig = "SIG" + sig
}
signal := unix.SignalNum(sig)
if signal == 0 {
return -1, fmt.Errorf("unknown signal %q", rawSignal)
}
return signal, nil