From 2a6b453fc1789c94a2e70140f30d945ed55fe04f Mon Sep 17 00:00:00 2001 From: Gabriel Adrian Samfira Date: Sun, 23 Jul 2023 12:33:49 +0000 Subject: [PATCH] Move the exec helper Signed-off-by: Gabriel Adrian Samfira --- config/external.go | 2 +- go.mod | 2 +- runner/providers/external/external.go | 2 +- util/exec/exec.go | 25 ------------------------- util/exec/exec_nix.go | 12 ------------ util/exec/exec_windows.go | 18 ------------------ vendor/modules.txt | 1 + 7 files changed, 4 insertions(+), 58 deletions(-) delete mode 100644 util/exec/exec.go delete mode 100644 util/exec/exec_nix.go delete mode 100644 util/exec/exec_windows.go diff --git a/config/external.go b/config/external.go index c6195dcb..5bd9e273 100644 --- a/config/external.go +++ b/config/external.go @@ -19,7 +19,7 @@ import ( "os" "path/filepath" - "github.com/cloudbase/garm/util/exec" + "github.com/cloudbase/garm-provider-common/util/exec" "github.com/pkg/errors" ) diff --git a/go.mod b/go.mod index 0be8ca73..de90d683 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,6 @@ require ( golang.org/x/crypto v0.7.0 golang.org/x/oauth2 v0.8.0 golang.org/x/sync v0.1.0 - golang.org/x/sys v0.8.0 gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gorm.io/datatypes v1.1.1 @@ -99,6 +98,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect golang.org/x/net v0.10.0 // indirect + golang.org/x/sys v0.8.0 // indirect golang.org/x/term v0.8.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.30.0 // indirect diff --git a/runner/providers/external/external.go b/runner/providers/external/external.go index a1a9c3d8..edeccdf0 100644 --- a/runner/providers/external/external.go +++ b/runner/providers/external/external.go @@ -12,10 +12,10 @@ import ( commonParams "github.com/cloudbase/garm-provider-common/params" garmErrors "github.com/cloudbase/garm-provider-common/errors" + garmExec "github.com/cloudbase/garm-provider-common/util/exec" "github.com/cloudbase/garm/config" "github.com/cloudbase/garm/params" "github.com/cloudbase/garm/runner/common" - garmExec "github.com/cloudbase/garm/util/exec" "github.com/pkg/errors" ) diff --git a/util/exec/exec.go b/util/exec/exec.go deleted file mode 100644 index 654b0955..00000000 --- a/util/exec/exec.go +++ /dev/null @@ -1,25 +0,0 @@ -package exec - -import ( - "bytes" - "context" - "os/exec" - - "github.com/pkg/errors" -) - -func Exec(ctx context.Context, providerBin string, stdinData []byte, environ []string) ([]byte, error) { - stdout := &bytes.Buffer{} - stderr := &bytes.Buffer{} - c := exec.CommandContext(ctx, providerBin) - c.Env = environ - c.Stdin = bytes.NewBuffer(stdinData) - c.Stdout = stdout - c.Stderr = stderr - - if err := c.Run(); err != nil { - return nil, errors.Wrapf(err, "provider binary failed with stdout: %s; stderr: %s", stdout.String(), stderr.String()) - } - - return stdout.Bytes(), nil -} diff --git a/util/exec/exec_nix.go b/util/exec/exec_nix.go deleted file mode 100644 index 1525eca6..00000000 --- a/util/exec/exec_nix.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build !windows -// +build !windows - -package exec - -import ( - "golang.org/x/sys/unix" -) - -func IsExecutable(path string) bool { - return unix.Access(path, unix.X_OK) == nil -} diff --git a/util/exec/exec_windows.go b/util/exec/exec_windows.go deleted file mode 100644 index 0c17839c..00000000 --- a/util/exec/exec_windows.go +++ /dev/null @@ -1,18 +0,0 @@ -package exec - -import ( - "os" - "strings" -) - -func IsExecutable(path string) bool { - pathExt := os.Getenv("PATHEXT") - execList := strings.Split(pathExt, ";") - for _, ext := range execList { - if strings.HasSuffix(path, ext) { - return true - } - } - - return false -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 3528211d..6a4b27ee 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -42,6 +42,7 @@ github.com/cloudbase/garm-provider-common/errors github.com/cloudbase/garm-provider-common/execution github.com/cloudbase/garm-provider-common/params github.com/cloudbase/garm-provider-common/util +github.com/cloudbase/garm-provider-common/util/exec # github.com/cloudflare/circl v1.3.3 ## explicit; go 1.19 github.com/cloudflare/circl/dh/x25519