cmd/gogio: restore package path handling

A previous change converted the package argument to gogio to an absolute path.
However, gogio supports all package paths that may appear in Go import statements.
For example, the path "gioui.org/cmd/example/kitchen" should not be converted.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2020-11-26 11:17:40 +01:00
parent 39787cb5b7
commit 9b54892cc4
2 changed files with 7 additions and 16 deletions
+6 -12
View File
@@ -5,7 +5,6 @@ import (
"fmt" "fmt"
"os/exec" "os/exec"
"path" "path"
"path/filepath"
"strings" "strings"
) )
@@ -22,8 +21,8 @@ type buildInfo struct {
version int version int
} }
func newBuildInfo(pkgAbsPath string) (*buildInfo, error) { func newBuildInfo(pkgPath string) (*buildInfo, error) {
pkgMetadata, err := getPkgMetadata(pkgAbsPath) pkgMetadata, err := getPkgMetadata(pkgPath)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -35,7 +34,7 @@ func newBuildInfo(pkgAbsPath string) (*buildInfo, error) {
minsdk: *minsdk, minsdk: *minsdk,
name: getPkgName(pkgMetadata), name: getPkgName(pkgMetadata),
pkgDir: pkgMetadata.Dir, pkgDir: pkgMetadata.Dir,
pkgPath: pkgAbsPath, pkgPath: pkgPath,
tags: *extraTags, tags: *extraTags,
target: *target, target: *target,
version: *version, version: *version,
@@ -43,11 +42,6 @@ func newBuildInfo(pkgAbsPath string) (*buildInfo, error) {
return bi, nil return bi, nil
} }
func getPkgAbsPath() string {
absPath, _ := filepath.Abs(flag.Arg(0))
return absPath
}
func getArchs() []string { func getArchs() []string {
if *archNames != "" { if *archNames != "" {
return strings.Split(*archNames, ",") return strings.Split(*archNames, ",")
@@ -88,12 +82,12 @@ type packageMetadata struct {
Dir string Dir string
} }
func getPkgMetadata(absPath string) (*packageMetadata, error) { func getPkgMetadata(pkgPath string) (*packageMetadata, error) {
pkgImportPath, err := runCmd(exec.Command("go", "list", "-f", "{{.ImportPath}}", absPath)) pkgImportPath, err := runCmd(exec.Command("go", "list", "-f", "{{.ImportPath}}", pkgPath))
if err != nil { if err != nil {
return nil, err return nil, err
} }
pkgDir, err := runCmd(exec.Command("go", "list", "-f", "{{.Dir}}", absPath)) pkgDir, err := runCmd(exec.Command("go", "list", "-f", "{{.Dir}}", pkgPath))
if err != nil { if err != nil {
return nil, err return nil, err
} }
+1 -4
View File
@@ -46,7 +46,7 @@ func main() {
fmt.Fprintf(os.Stderr, "gogio: %v\n", err) fmt.Fprintf(os.Stderr, "gogio: %v\n", err)
os.Exit(1) os.Exit(1)
} }
buildInfo, err := newBuildInfo(getPkgAbsPath()) buildInfo, err := newBuildInfo(flag.Arg(0))
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "gogio: %v\n", err) fmt.Fprintf(os.Stderr, "gogio: %v\n", err)
os.Exit(1) os.Exit(1)
@@ -63,9 +63,6 @@ func flagValidate() error {
if pkgPathArg == "" { if pkgPathArg == "" {
return errors.New("specify a package") return errors.New("specify a package")
} }
if _, err := filepath.Abs(pkgPathArg); err != nil {
return err
}
if *target == "" { if *target == "" {
return errors.New("please specify -target") return errors.New("please specify -target")
} }