mirror of
https://github.com/kevin-DL/revel-cmd.git
synced 2026-01-11 18:54:31 +00:00
Modified run command to translate symlinks to absolute paths
This commit is contained in:
@@ -261,10 +261,10 @@ func (c *CommandConfig) InitGoPaths() {
|
||||
}
|
||||
}
|
||||
|
||||
utils.Logger.Info("Source root", "path", c.SrcRoot, "cwd", workingDir, "gopath", c.GoPath, "bestpath",bestpath)
|
||||
if len(c.SrcRoot) == 0 && len(bestpath) > 0 {
|
||||
c.SrcRoot = bestpath
|
||||
}
|
||||
utils.Logger.Info("Source root", "path", c.SrcRoot, "cwd", workingDir, "gopath", c.GoPath)
|
||||
|
||||
// If source root is empty and this isn't a version then skip it
|
||||
if len(c.SrcRoot) == 0 {
|
||||
|
||||
15
revel/new.go
15
revel/new.go
@@ -16,6 +16,9 @@ import (
|
||||
"github.com/revel/cmd/model"
|
||||
"github.com/revel/cmd/utils"
|
||||
"net/url"
|
||||
"github.com/kr/pty"
|
||||
"io"
|
||||
"bytes"
|
||||
)
|
||||
|
||||
var cmdNew = &Command{
|
||||
@@ -114,10 +117,16 @@ func newApp(c *model.CommandConfig) (err error) {
|
||||
|
||||
getCmd := exec.Command("dep", "ensure", "-v")
|
||||
utils.CmdInit(getCmd, c.AppPath)
|
||||
utils.Logger.Info("Exec:", "args", getCmd.Args)
|
||||
getOutput, err := getCmd.CombinedOutput()
|
||||
f, err := pty.Start(getCmd);
|
||||
stdout := new(bytes.Buffer)
|
||||
io.Copy(io.MultiWriter(stdout, os.Stdout), f)
|
||||
if err = getCmd.Wait(); err != nil {
|
||||
|
||||
}
|
||||
utils.Logger.Info("Exec:", "args", getCmd.Args, "env", getCmd.Env, "workingdir",getCmd.Dir)
|
||||
// getOutput, err := getCmd.CombinedOutput()
|
||||
if err != nil {
|
||||
return utils.NewBuildIfError(err, string(getOutput))
|
||||
return utils.NewBuildIfError(err, stdout.String())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,13 +5,24 @@ import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
"bytes"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// Initialize the command based on the GO environment
|
||||
func CmdInit(c *exec.Cmd, basePath string) {
|
||||
c.Dir = basePath
|
||||
// Dep does not like paths that are not real, convert all paths in go to real paths
|
||||
realPath := &bytes.Buffer{}
|
||||
for _, p := range filepath.SplitList(build.Default.GOPATH) {
|
||||
rp,_ := filepath.EvalSymlinks(p)
|
||||
if realPath.Len() > 0 {
|
||||
realPath.WriteString(string(filepath.ListSeparator))
|
||||
}
|
||||
realPath.WriteString(rp)
|
||||
}
|
||||
// Go 1.8 fails if we do not include the GOROOT
|
||||
c.Env = []string{"GOPATH=" + build.Default.GOPATH, "GOROOT="+ os.Getenv("GOROOT")}
|
||||
c.Env = []string{"GOPATH=" + realPath.String(), "GOROOT="+ os.Getenv("GOROOT")}
|
||||
// Fetch the rest of the env variables
|
||||
for _, e := range os.Environ() {
|
||||
pair := strings.Split(e, "=")
|
||||
|
||||
Reference in New Issue
Block a user