Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-12-18 20:20:12 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-12-19 19:03:07 +0300
commit10ae7c3210cd1add14d3750aa9512a87df0e1146 (patch)
tree6fa7eb1e9bfe093f3b611bbb286aefe591e1dc7a /resources
parentae2d1bd52df0099190ef9195666d0788708b0385 (diff)
Improve LookPath
Diffstat (limited to 'resources')
-rw-r--r--resources/resource_transformers/babel/babel.go12
-rw-r--r--resources/resource_transformers/postcss/postcss.go14
2 files changed, 18 insertions, 8 deletions
diff --git a/resources/resource_transformers/babel/babel.go b/resources/resource_transformers/babel/babel.go
index 64d8667bd..204153705 100644
--- a/resources/resource_transformers/babel/babel.go
+++ b/resources/resource_transformers/babel/babel.go
@@ -16,10 +16,11 @@ package babel
import (
"bytes"
"io"
- "os/exec"
"path/filepath"
"strconv"
+ "github.com/cli/safeexec"
+ "github.com/gohugoio/hugo/common/hexec"
"github.com/gohugoio/hugo/common/loggers"
"github.com/gohugoio/hugo/common/hugo"
@@ -108,10 +109,10 @@ func (t *babelTransformation) Transform(ctx *resources.ResourceTransformationCtx
binary := csiBinPath
- if _, err := exec.LookPath(binary); err != nil {
+ if _, err := safeexec.LookPath(binary); err != nil {
// Try PATH
binary = binaryName
- if _, err := exec.LookPath(binary); err != nil {
+ if _, err := safeexec.LookPath(binary); err != nil {
// This may be on a CI server etc. Will fall back to pre-built assets.
return herrors.ErrFeatureNotAvailable
}
@@ -152,7 +153,10 @@ func (t *babelTransformation) Transform(ctx *resources.ResourceTransformationCtx
}
cmdArgs = append(cmdArgs, "--filename="+ctx.SourcePath)
- cmd := exec.Command(binary, cmdArgs...)
+ cmd, err := hexec.SafeCommand(binary, cmdArgs...)
+ if err != nil {
+ return err
+ }
cmd.Stdout = ctx.To
cmd.Stderr = io.MultiWriter(infoW, &errBuf)
diff --git a/resources/resource_transformers/postcss/postcss.go b/resources/resource_transformers/postcss/postcss.go
index 27864b0c5..652770078 100644
--- a/resources/resource_transformers/postcss/postcss.go
+++ b/resources/resource_transformers/postcss/postcss.go
@@ -19,13 +19,16 @@ import (
"encoding/hex"
"io"
"io/ioutil"
- "os/exec"
"path"
"path/filepath"
"regexp"
"strconv"
"strings"
+ "github.com/cli/safeexec"
+
+ "github.com/gohugoio/hugo/common/hexec"
+
"github.com/gohugoio/hugo/common/hugo"
"github.com/gohugoio/hugo/common/loggers"
@@ -146,10 +149,10 @@ func (t *postcssTransformation) Transform(ctx *resources.ResourceTransformationC
binary := csiBinPath
- if _, err := exec.LookPath(binary); err != nil {
+ if _, err := safeexec.LookPath(binary); err != nil {
// Try PATH
binary = binaryName
- if _, err := exec.LookPath(binary); err != nil {
+ if _, err := safeexec.LookPath(binary); err != nil {
// This may be on a CI server etc. Will fall back to pre-built assets.
return herrors.ErrFeatureNotAvailable
}
@@ -186,7 +189,10 @@ func (t *postcssTransformation) Transform(ctx *resources.ResourceTransformationC
cmdArgs = append(cmdArgs, optArgs...)
}
- cmd := exec.Command(binary, cmdArgs...)
+ cmd, err := hexec.SafeCommand(binary, cmdArgs...)
+ if err != nil {
+ return err
+ }
var errBuf bytes.Buffer
infoW := loggers.LoggerToWriterWithPrefix(logger.Info(), "postcss")