env.go 587 B

1234567891011121314151617181920212223242526272829303132333435
  1. package util
  2. import (
  3. "fmt"
  4. "os"
  5. "path"
  6. "strings"
  7. )
  8. func GetFullPackage(pkg string) (string, error) {
  9. dir, err := os.Getwd()
  10. if err != nil {
  11. return "", err
  12. }
  13. pkgPath := path.Join(dir, pkg)
  14. info, err := os.Stat(pkgPath)
  15. if err != nil {
  16. return "", err
  17. }
  18. if !info.IsDir() {
  19. return "", fmt.Errorf("%s is not a directory", pkg)
  20. }
  21. gopath := os.Getenv("GOPATH")
  22. parent := path.Join(gopath, "src")
  23. pos := strings.Index(pkgPath, parent)
  24. if pos < 0 {
  25. return "", fmt.Errorf("%s is not a correct package", pkg)
  26. }
  27. // skip slash
  28. return pkgPath[len(parent)+1:], nil
  29. }