Files
elmprodvpn/selective-vpn-api/app/transport_netns_run.go

30 lines
920 B
Go

package app
import (
"strings"
"time"
)
func transportRunMust(timeout time.Duration, name string, args ...string) error {
stdout, stderr, code, err := transportRunCommand(timeout, name, args...)
if err != nil || code != 0 {
return transportCommandError(name+" "+strings.Join(args, " "), stdout, stderr, code, err)
}
return nil
}
func transportRunSoft(timeout time.Duration, name string, args ...string) error {
stdout, stderr, code, err := transportRunCommand(timeout, name, args...)
if err != nil || code != 0 {
combined := strings.ToLower(strings.TrimSpace(stderr + " " + stdout))
if strings.Contains(combined, "no such file") ||
strings.Contains(combined, "not found") ||
strings.Contains(combined, "cannot find") ||
strings.Contains(combined, "does not exist") {
return nil
}
return transportCommandError(name+" "+strings.Join(args, " "), stdout, stderr, code, err)
}
return nil
}