Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
return PackageData instead of build.Package from build.Import()
And add build.ImportDir() as wrapper around upstream's build.ImportDir()
  • Loading branch information
flimzy committed Oct 19, 2015
commit 4c20fe8cba16c1857e4ed299d87b3270e6e35558
19 changes: 13 additions & 6 deletions build/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,15 @@ func NewBuildContext(installSuffix string, buildTags []string) *build.Context {
}
}

func Import(path string, mode build.ImportMode, installSuffix string, buildTags []string) (*build.Package, error) {
func ImportDir(path string, mode build.ImportMode) (*PackageData, error) {
pkg,err := build.ImportDir(path, mode)
if err != nil {
return nil,err
}
return &PackageData{Package: pkg},nil
}

func Import(path string, mode build.ImportMode, installSuffix string, buildTags []string) (*PackageData, error) {
buildContext := NewBuildContext(installSuffix, buildTags)
if path == "runtime" || path == "syscall" {
buildContext.GOARCH = build.Default.GOARCH
Expand Down Expand Up @@ -87,7 +95,7 @@ func Import(path string, mode build.ImportMode, installSuffix string, buildTags
}
}

return pkg, nil
return &PackageData{Package: pkg}, nil
}

// parse parses and returns all .go files of given pkg.
Expand Down Expand Up @@ -357,14 +365,13 @@ func (s *Session) ImportPackage(path string) (*compiler.Archive, error) {
return pkg.Archive, nil
}

buildPkg, err := Import(path, 0, s.InstallSuffix(), s.options.BuildTags)
if s.Watcher != nil && buildPkg != nil { // add watch even on error
s.Watcher.Add(buildPkg.Dir)
pkg, err := Import(path, 0, s.InstallSuffix(), s.options.BuildTags)
if s.Watcher != nil && pkg != nil { // add watch even on error
s.Watcher.Add(pkg.Dir)
}
if err != nil {
return nil, err
}
pkg := &PackageData{Package: buildPkg}

jsFiles, err := jsFilesFromDir(pkg.Dir)
if err != nil {
Expand Down
18 changes: 8 additions & 10 deletions tool.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,10 @@ func main() {
if s.Watcher != nil {
s.Watcher.Add(pkgPath)
}
buildPkg, err := gbuild.Import(pkgPath, 0, s.InstallSuffix(), options.BuildTags)
pkg, err := gbuild.Import(pkgPath, 0, s.InstallSuffix(), options.BuildTags)
if err != nil {
return err
}
pkg := &gbuild.PackageData{Package: buildPkg}
if err := s.BuildPackage(pkg); err != nil {
return err
}
Expand Down Expand Up @@ -254,7 +253,7 @@ func main() {
cmdTest.Flags().AddFlag(flagColor)
cmdTest.Run = func(cmd *cobra.Command, args []string) {
os.Exit(handleError(func() error {
pkgs := make([]*build.Package, len(args))
pkgs := make([]*gbuild.PackageData, len(args))
for i, pkgPath := range args {
pkgPath = filepath.ToSlash(pkgPath)
var err error
Expand All @@ -269,7 +268,7 @@ func main() {
if err != nil {
return err
}
var pkg *build.Package
var pkg *gbuild.PackageData
if strings.HasPrefix(currentDirectory, srcDir) {
pkgPath, err := filepath.Rel(srcDir, currentDirectory)
if err != nil {
Expand All @@ -280,12 +279,12 @@ func main() {
}
}
if pkg == nil {
if pkg, err = build.ImportDir(currentDirectory, 0); err != nil {
if pkg, err = gbuild.ImportDir(currentDirectory, 0); err != nil {
return err
}
pkg.ImportPath = "_" + currentDirectory
}
pkgs = []*build.Package{pkg}
pkgs = []*gbuild.PackageData{pkg}
}

var exitErr error
Expand All @@ -296,7 +295,7 @@ func main() {
}

s := gbuild.NewSession(options)
tests := &testFuncs{Package: pkg}
tests := &testFuncs{Package: pkg.Package}
collectTests := func(buildPkg *build.Package, testPkgName string, needVar *bool) error {
testPkg := &gbuild.PackageData{Package: buildPkg, IsTest: true}
if err := s.BuildPackage(testPkg); err != nil {
Expand Down Expand Up @@ -496,8 +495,8 @@ func (fs serveCommandFileSystem) Open(name string) (http.File, error) {
if isPkg || isMap || isIndex {
// If we're going to be serving our special files, make sure there's a Go command in this folder.
s := gbuild.NewSession(fs.options)
buildPkg, err := gbuild.Import(path.Dir(name[1:]), 0, s.InstallSuffix(), fs.options.BuildTags)
if err != nil || buildPkg.Name != "main" {
pkg, err := gbuild.Import(path.Dir(name[1:]), 0, s.InstallSuffix(), fs.options.BuildTags)
if err != nil || pkg.Name != "main" {
isPkg = false
isMap = false
isIndex = false
Expand All @@ -508,7 +507,6 @@ func (fs serveCommandFileSystem) Open(name string) (http.File, error) {
buf := bytes.NewBuffer(nil)
browserErrors := bytes.NewBuffer(nil)
exitCode := handleError(func() error {
pkg := &gbuild.PackageData{Package: buildPkg}
if err := s.BuildPackage(pkg); err != nil {
return err
}
Expand Down