From e36e169d6ca5476920ebe49ad532e40ea85d039b Mon Sep 17 00:00:00 2001 From: Tero Marttila Date: Thu, 23 Jun 2016 00:51:19 +0300 Subject: [PATCH] digitalPin: do not export if the /sys/class/gpio/... file already exists --- host/generic/digitalpin.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/host/generic/digitalpin.go b/host/generic/digitalpin.go index 80a81ea..b50c5db 100644 --- a/host/generic/digitalpin.go +++ b/host/generic/digitalpin.go @@ -62,7 +62,21 @@ func (p *digitalPin) init() error { return nil } +func (p *digitalPin) isExported() bool { + if _, err := os.Stat(p.basePath()); err == nil { + return true + } else if os.IsNotExist(err) { + return false + } else { + // unknown + return false + } +} + func (p *digitalPin) export() error { + if p.isExported() { + return nil + } exporter, err := os.OpenFile("/sys/class/gpio/export", os.O_WRONLY, os.ModeExclusive) if err != nil { return err