//go:build linux package udev import ( "fmt" "io" "edge-infra.dev/pkg/lib/kernel/udev/sockets" ) const Netlink = "netlink" // NewUEventReader will return a UEvent reader depending on the source. // The source can either be the local netlink instance or an external destination func NewUEventReader(source string) (uEventReader io.ReadCloser, fd int, err error) { switch source { case Netlink: uEventReader, fd, err = sockets.NewUEventNetlinkReader() default: uEventReader, fd, err = sockets.NewUEventRemoteReader(source) } if err != nil { return nil, 0, fmt.Errorf("failed to create uevent reader for %s: %w", source, err) } return uEventReader, fd, nil }