From daaa0fa467c75fadd3227a6e909953bdc77d2e0a Mon Sep 17 00:00:00 2001 From: Mandar Limaye Date: Tue, 9 Aug 2016 12:07:21 -0500 Subject: [PATCH] Add conditional build files for unix.Access. This will allow library to be built on windows. --- access_unix.go | 9 +++++++++ access_win.go | 15 +++++++++++++++ server.go | 3 +-- unix.go | 11 +++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 access_unix.go create mode 100644 access_win.go create mode 100644 unix.go diff --git a/access_unix.go b/access_unix.go new file mode 100644 index 0000000..a1f8894 --- /dev/null +++ b/access_unix.go @@ -0,0 +1,9 @@ +// +build darwin freebsd linux netbsd openbsd + +package adb + +import "golang.org/x/sys/unix" + +func access(path string) error { + return unix.Access(path, unix.X_OK) +} diff --git a/access_win.go b/access_win.go new file mode 100644 index 0000000..2d84abe --- /dev/null +++ b/access_win.go @@ -0,0 +1,15 @@ +// +build windows + +package adb + +import ( + "errors" + "strings" +) + +func access(path string) error { + if strings.Contains(path, ".exe") { + return nil + } + return errors.New("not an executable") +} diff --git a/server.go b/server.go index f5a91e7..e826537 100644 --- a/server.go +++ b/server.go @@ -9,7 +9,6 @@ import ( "github.com/zach-klippenstein/goadb/internal/errors" "github.com/zach-klippenstein/goadb/wire" - "golang.org/x/sys/unix" ) const ( @@ -137,7 +136,7 @@ var localFilesystem = &filesystem{ if !info.Mode().IsRegular() { return stderrors.New("not a regular file") } - return unix.Access(path, unix.X_OK) + return Access(path) }, CmdCombinedOutput: func(name string, arg ...string) ([]byte, error) { return exec.Command(name, arg...).CombinedOutput() diff --git a/unix.go b/unix.go new file mode 100644 index 0000000..c87b6a8 --- /dev/null +++ b/unix.go @@ -0,0 +1,11 @@ +package adb + +/* +Exported Access function calls private access function. +Implementation for private access function is provided in +access_win.go for windows and +access_unix.go for unix +*/ +func Access(path string) error { + return access(path) +}