aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-05-23 16:49:18 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-05-23 16:49:18 +0200
commitd5d6560c566fc27c947698503960115827fbe834 (patch)
tree93cbd26eefb8f712d3355ea8772b7100b2797855
parent300b431cf2bcd362d0db3d106909a39fb1854e4b (diff)
Autofind device
-rw-r--r--device.go25
1 files changed, 13 insertions, 12 deletions
diff --git a/device.go b/device.go
index cb643f2..5166d83 100644
--- a/device.go
+++ b/device.go
@@ -1,28 +1,29 @@
package robo
-import (
- "bufio"
- "log"
- "runtime"
-)
+import "bufio"
type Device interface {
Close()
Handle() *bufio.ReadWriter
}
+var devices = []string{
+ "/dev/usb/lp0", // Linux
+ "/dev/ulpt0", // OpenBSD
+}
+
func NewDevice() (dev Device) {
var err error
- if runtime.GOOS == "linux" {
- dev, err = NewLP("/dev/usb/lp0")
- } else {
- dev, err = NewUSB()
+ for _, d := range devices {
+ if dev, err = NewLP(d); err == nil {
+ return
+ }
}
- if err != nil {
- log.Fatal(err)
+ if dev, err = NewUSB(); err == nil {
+ return
}
- return
+ panic(err)
}