forked from joejulian/gio
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:
+6
-12
@@ -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
@@ -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")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user