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 {
|
if len(c.SrcRoot) == 0 && len(bestpath) > 0 {
|
||||||
c.SrcRoot = bestpath
|
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 source root is empty and this isn't a version then skip it
|
||||||
if len(c.SrcRoot) == 0 {
|
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/model"
|
||||||
"github.com/revel/cmd/utils"
|
"github.com/revel/cmd/utils"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"github.com/kr/pty"
|
||||||
|
"io"
|
||||||
|
"bytes"
|
||||||
)
|
)
|
||||||
|
|
||||||
var cmdNew = &Command{
|
var cmdNew = &Command{
|
||||||
@@ -114,10 +117,16 @@ func newApp(c *model.CommandConfig) (err error) {
|
|||||||
|
|
||||||
getCmd := exec.Command("dep", "ensure", "-v")
|
getCmd := exec.Command("dep", "ensure", "-v")
|
||||||
utils.CmdInit(getCmd, c.AppPath)
|
utils.CmdInit(getCmd, c.AppPath)
|
||||||
utils.Logger.Info("Exec:", "args", getCmd.Args)
|
f, err := pty.Start(getCmd);
|
||||||
getOutput, err := getCmd.CombinedOutput()
|
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 {
|
if err != nil {
|
||||||
return utils.NewBuildIfError(err, string(getOutput))
|
return utils.NewBuildIfError(err, stdout.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,13 +5,24 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"strings"
|
"strings"
|
||||||
|
"bytes"
|
||||||
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Initialize the command based on the GO environment
|
// Initialize the command based on the GO environment
|
||||||
func CmdInit(c *exec.Cmd, basePath string) {
|
func CmdInit(c *exec.Cmd, basePath string) {
|
||||||
c.Dir = basePath
|
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
|
// 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
|
// Fetch the rest of the env variables
|
||||||
for _, e := range os.Environ() {
|
for _, e := range os.Environ() {
|
||||||
pair := strings.Split(e, "=")
|
pair := strings.Split(e, "=")
|
||||||
|
|||||||
Reference in New Issue
Block a user