refactor code

This commit is contained in:
Mandar Limaye 2016-08-26 20:17:20 -05:00
parent daaa0fa467
commit 5d71bb68b4
4 changed files with 11 additions and 10 deletions

View file

@ -4,6 +4,6 @@ package adb
import "golang.org/x/sys/unix"
func access(path string) error {
func isExecutableOnPlatform(path string) error {
return unix.Access(path, unix.X_OK)
}

View file

@ -7,8 +7,9 @@ import (
"strings"
)
func access(path string) error {
if strings.Contains(path, ".exe") {
func isExecutableOnPlatform(path string) error {
if strings.HasSuffix(path, ".exe") || strings.HasSuffix(path, ".cmd") ||
strings.HasSuffix(path, ".bat") {
return nil
}
return errors.New("not an executable")

View file

@ -136,7 +136,7 @@ var localFilesystem = &filesystem{
if !info.Mode().IsRegular() {
return stderrors.New("not a regular file")
}
return Access(path)
return isExecutable(path)
},
CmdCombinedOutput: func(name string, arg ...string) ([]byte, error) {
return exec.Command(name, arg...).CombinedOutput()

12
unix.go
View file

@ -1,11 +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
isExecutable function calls the isExecutableOnPlatform function.
Implementation the isExecutableOnPlatform function is provided in
execuatble_win.go for windows and
executable_unix.go for unix.
*/
func Access(path string) error {
return access(path)
func isExecutable(path string) error {
return isExecutableOnPlatform(path)
}