From 6c8e8c3003ee5acb26223d40b7de0fce76942cb7 Mon Sep 17 00:00:00 2001 From: ptrcnull Date: Mon, 29 Nov 2021 22:13:48 +0100 Subject: [PATCH] feat: Add method for opening devices --- device.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 device.go diff --git a/device.go b/device.go new file mode 100644 index 0000000..a8a6b00 --- /dev/null +++ b/device.go @@ -0,0 +1,23 @@ +package main + +import ( + "fmt" + "io" + "os" +) + +var devices map[string]io.ReadWriteCloser + +func GetDevice(name string) (io.ReadWriteCloser, error) { + if dev, ok := devices[name]; ok { + return dev, nil + } + + dev, err := os.OpenFile("/dev/" + name, os.O_RDWR, 0644) + if err != nil { + return nil, fmt.Errorf("open: %w", err) + } + + devices[name] = dev + return dev, nil +}